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

时间:2011-10-30 09:01:25

标签: javascript regex

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

toString().match(/^(([0-9](,)?)*)+$/)

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

inputval:1,22,34,25,645(true)
inputval:1,22,34,25,645,(falues)

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

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:25)

只需手动包含至少一个:

/^[0-9]+(,[0-9]+)*$/

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'));                  

答案 1 :(得分:4)

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

/^(([0-9]+)(,(?=[0-9]))?)+$/

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

或者

/^(([0-9]+)(,(?!$))?)+$/

字符,的结尾不能跟(?!$)

/^(?!,)(,?[0-9]+)+$/

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