RegEx用于JavaScript验证逗号分隔的数字

pra*_*mar 9 javascript regex

我有一个文本框,它可以有1或1,2或1,225,345,21等值,即多个值.但现在我想验证这个输入.

toString().match(/^(([0-9](,)?)*)+$/)
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码.它只是验证正确,但是当用户输入如下值时会出现一个问题:

inputval:1,22,34,25,645(true)
inputval:1,22,34,25,645,(falues)
Run Code Online (Sandbox Code Playgroud)

当用户最后输入逗号(,)时,它应该抛出错误.

有人能帮帮我吗?

Ari*_*iel 25

只需手动包含至少一个:

/^[0-9]+(,[0-9]+)*$/
Run Code Online (Sandbox Code Playgroud)

let regex = /[0-9]+(,[0-9]+)*/g

console.log('1231232,12323123,122323',regex.test('1231232,12323123,122323')); 
console.log('1,22,34,25,645,',regex.test('1,22,34,25,645,'));
console.log('1',regex.test('1'));                  
Run Code Online (Sandbox Code Playgroud)


xan*_*tos 5

Ariel 正则表达式的变体 :-)

/^(([0-9]+)(,(?=[0-9]))?)+$/
Run Code Online (Sandbox Code Playgroud)

,后面必须跟一个数字(?=[0-9])

或者

/^(([0-9]+)(,(?!$))?)+$/
Run Code Online (Sandbox Code Playgroud)

,不得其次是字符串的结尾(?!$)

/^(?!,)(,?[0-9]+)+$/
Run Code Online (Sandbox Code Playgroud)

我们检查第一个字符是否不是 a , (?!,),然后我们将可选,字符放在数字之前。它是可选的,因为第一个数字块不需要它。