Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否限制由逗号分隔的字符数?_Javascript_Regex - Fatal编程技术网

Javascript 是否限制由逗号分隔的字符数?

Javascript 是否限制由逗号分隔的字符数?,javascript,regex,Javascript,Regex,我有下面的正则表达式,它只允许用逗号分隔数字 /^(?:\d+(?:, *|))*\d+$/ 例如: 12345, 123456789, 987654 //valid 有没有办法修改这个正则表达式,使其在逗号前后只允许3到5个数字 示例: 12345, 54321, 918, 123, 5678 //valid 12345, 1234567, 4382929001 //invalid 您可以使用此正则表达式: ^(?:\d{3,5}[ ,]+)*\b\d{3,5}$ 更新

我有下面的正则表达式,它只允许用逗号分隔数字

/^(?:\d+(?:, *|))*\d+$/
例如:

12345, 123456789, 987654  //valid
有没有办法修改这个正则表达式,使其在逗号前后只允许3到5个数字

示例:

12345, 54321, 918, 123, 5678   //valid

12345, 1234567, 4382929001     //invalid

您可以使用此正则表达式:

^(?:\d{3,5}[ ,]+)*\b\d{3,5}$
更新:要在使用数字后阻止多个逗号,请执行以下操作:

^(?:\d{3,5}(?! *, *,)[ ,]+)*\b\d{3,5}$

您可以使用此正则表达式:

^(?:\d{3,5}[ ,]+)*\b\d{3,5}$
更新:要在使用数字后阻止多个逗号,请执行以下操作:

^(?:\d{3,5}(?! *, *,)[ ,]+)*\b\d{3,5}$

我想你正在寻找这个:

^\d{3,5}(?:,\s\d{3,5})*$
但我还是要说,你打电话给12345、123456789、987654是有效的,我觉得这是你的错

这将只允许在逗号前后的所有数字中使用3-5位数字


此处演示:

我想您正在寻找:

^\d{3,5}(?:,\s\d{3,5})*$
但我还是要说,你打电话给12345、123456789、987654是有效的,我觉得这是你的错

这将只允许在逗号前后的所有数字中使用3-5位数字


此处演示:

为什么
1234512345678987654
应该有效,为什么
123451234567438299001
应该无效?因为我试图解释我现有的正则表达式对任何长度都有效。我想修改正则表达式,使其只接受逗号前后的数字长度范围。否则,您需要针对regexps的每一项功能发布几十个问题?你可能比从开始做得更糟。为什么
1234512345678987654
应该有效,为什么
12345123456764382929001
应该无效?因为我试图解释我现有的正则表达式对任何长度都有效。我想修改正则表达式,使其只接受逗号前后的数字长度范围。否则,您需要针对regexps的每一项功能发布几十个问题?你可能会比从一开始做得更糟。