限制逗号分隔的字符数?

时间:2014-09-24 10:54:28

标签: javascript regex

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

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

示例:

12345, 123456789, 987654  //valid

有没有办法修改此正则表达式,只允许逗号前后3到5个数字。

示例:

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

12345, 1234567, 4382929001     //invalid

2 个答案:

答案 0 :(得分:3)

我认为你正在寻找这个:

^\d{3,5}(?:,\s\d{3,5})*$

但是我应该再说一次12345, 123456789, 987654有效,这对我来说是错误的

这将允许逗号前后所有数字中只有3-5个数字。

演示:http://regex101.com/r/nX8kW4/1

答案 1 :(得分:2)

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

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

RegEx Demo 1

更新:在使用数字后阻止多个逗号:

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

RegEx Demo 2