我正在寻找javascript验证,该验证允许输入任意长度的四个数字,以逗号分隔。

例如:

12,111,3455556666,1


要么

40,01,9,19877666666


我在下面使用正则表达式:

/^\d(,\d){0,3}/


但是它不能按要求工作。

有人可以帮助我形成正确的正则表达式模式吗?

最佳答案

您可以使用

/^\d+(?:,\d*){0,3}$/


请参见regex demo

细节


^-字符串开始
\d+-1个以上的数字
(?:,\d*){0,3}-0至3次出现


,-逗号
\d*-0+个数字

$-字符串结尾。


JS演示:



var strs = ["1222222", "1222222,1222222", "1222222,1222222,1222222,", "1222222,1222222,1222222,1222222", "1222222,1222222,1222222,1222222,1222222,1222222"];
var rx = /^\d+(?:,\d*){0,3}$/;
for (var s of strs) {
  console.log(s, "=>", rx.test(s));
}

08-08 00:32