用逗号和空格表示验证号的正则表达式

Regex for validation numbers with commas and space

本文关键字:验证 表示 正则表达式 空格      更新时间:2023-09-26

我不知道为什么这个正则表达式不工作。我想验证输入是否采用这种格式:

  1. 12345678,12345678,12345678
  2. *space*12345678,12345678,12345678
  3. 12345678,12345678, space
如果不返回false,则必须为8位。下面是我做的正则表达式,但它是为2组数字工作,但当我输入另一组数字验证不工作。
  1. 工作:12345678,12345678
  2. 不工作:12345678,12345678,12345678
var validate_numbers = /^'s*'d{8}'s*'+*(,'s*'d{8},*)?$/;

谢谢

您需要更详细地描述您想要匹配的内容。我将假设您想要匹配由逗号和加号分隔的8位数字,可能后面跟着逗号。

问题是你最多取两组数字。可视化。

根据上面的假设,这就是你想要的正则表达式:

^('s*'d{8}'s*[+,]?'s*)*$

同样,您可以在debuggex上看到它。

你能详细说明一下需求吗?逗号前需要空格吗?

''d{8}(?:,''d{8})*+

试试吧。它可以很好地满足验证数字列表的需求,该列表由8位数字组成,并以逗号分隔。

希望对大家有所帮助

从当前正则表达式中删除'$'。它严格匹配行尾,这将导致表达式在所需字符串上返回false。下面的代码对于您之前提到的返回FALSE的字符串返回TRUE。

omgerd我在PHP中自动编写了第一个响应,这里是快速的JS编辑

var pattern = /^'s*'d{8}'s*'+*(,'s*'d{8},*)?/;
var data2 = '12345678 , 12345678 ,12345678';
if (pattern.test(data2) != 0) {
    alert("ok");
}

输出:好