逗号分隔数字正则表达式

Nic*_*rca 33 regex

我正在尝试验证数字1-8的逗号分隔列表.

2,4,6,8,1有效输入.

我试过[0-8,]*但它似乎接受1234有效.它不需要逗号,而是让我输入大于8的数字.我不知道为什么.

Cai*_*von 38

[0-8,]*将匹配您的字符串中的0贯穿8或的,任何位置的零个或多个连续实例.你想要更像这样的东西:

^[1-8](,[1-8])*$
Run Code Online (Sandbox Code Playgroud)

^匹配字符串的开头,并$匹配结束,确保您正在检查整个字符串.它将匹配一个数字,加上零个或多个逗号实例,后跟一个数字.

  • 在更一般的情况下,[`^ [0-9] +(,[0-9] +)*$`](https://regex101.com/r/xbxBV7/1)(因为标题 - *逗号分隔数字正则表达式* - 听起来比OP在问题主体中描述的更广泛. (4认同)

Ank*_*rma 8

/^\d+(,\d+)*$/
Run Code Online (Sandbox Code Playgroud)
  • 至少一位数字,否则您将接受1 ,,,,, 4

  • 但这实际上回答了“标题”问题,这就是为什么我在这里 (2认同)

Jim*_*mmy 6

[0-9]+(,[0-9]+)+
Run Code Online (Sandbox Code Playgroud)

对于逗号分隔的数字,这对我来说效果更好,例如:1,234,933