当前位置: 首页 > 知识库问答 >
问题:

用可选小数部分验证逗号分隔的数字的Regex

爱刚捷
2023-03-14

使用JavaScript,我只需要接受数字和逗号。

我使用的regex模式如下所示

 var pattern = /^[-+]?[0-9]+(\.[0-9]+)?$/;

还有一些类似的问题只是部分地处理了这一点:

  • 带有逗号分隔符的数字的regex验证(只有整数,没有小数部分)
  • 小数正则表达式,其中小数后面的数字是可选的(没有逗号分隔,小数部分限制为1位数)
  • JavaScript函数需要允许数字、点和逗号(点、逗号和数字以任意顺序匹配)

共有1个答案

赏育
2023-03-14

使用以下regex:

^[-+]?(?:[0-9]+,)*[0-9]+(?:\.[0-9]+)?$

参见regex演示

这里的基本变化是添加了(?:[0-9]+,)*子模式,该子模式匹配:

    null
^[-+]?[0-9]+(?:,[0-9]{3})*(?:\.[0-9]+)?$

这里,(?:,[0-9]{3})*匹配逗号和3位数子字符串的0个或多个序列([0-9]{3})。{3}是一个限制量词,与前面的子模式正好匹配3次。

 类似资料:
  • 是有效输入。 无效 有效 无效 无效(只有7个数字) 我尝试了,但它接受重复的数字

  • 我试图验证数字1-8的逗号分隔列表。

  • 我使用PHP的Filter Functions(具体FILTER_VALIDATE_REGEXP)来验证输入数据。我有一个选项列表,$输入变量可以从列表中指定许多选项。 选项是(不区分大小写): 所有 奖励 加入 促销 流 签入 verified_checkin $输入变量几乎可以有任何值的组合。可能的成功案例是: all(值可以是all,也可以是逗号分隔的其他值列表,但不能同时是两者) 我能想到

  • 我试图验证一个逗号分隔的数字列表1-31唯一(不重复)。 20、15、3 我尝试但是它接受重复的数字

  • 作为前言,我意识到还有其他关于逗号分隔数字的正则表达式的主题,但当我试图使用这些解决方案时,它们都不起作用。