我有一个文本框,它可以有像1
或1,2
或1,225,345,21
(即多个值)的值。但现在我想要验证这个输入。
toString().match(/^(([0-9](,)?)*)+$/)
这是我正在使用的代码,它只验证正确性,但当用户输入像这样的值时会出现问题:
inputval:1,22,34,25,645(true)
inputval:1,22,34,25,645,(false)
当用户在结尾输入逗号 (,
) 时,它应该抛出一个错误。
可以有人帮我吗?
我有一个文本框,它可以有像1
或1,2
或1,225,345,21
(即多个值)的值。但现在我想要验证这个输入。
toString().match(/^(([0-9](,)?)*)+$/)
这是我正在使用的代码,它只验证正确性,但当用户输入像这样的值时会出现问题:
inputval:1,22,34,25,645(true)
inputval:1,22,34,25,645,(false)
当用户在结尾输入逗号 (,
) 时,它应该抛出一个错误。
可以有人帮我吗?
只需手动包含至少一个:
/^[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'));
/^(([0-9]+)(,(?=[0-9]))?)+$/
,
必须后跟一个数字(?=[0-9])
。
或者
/^(([0-9]+)(,(?!$))?)+$/
,
后面不能跟字符串结尾(?!$)
。/^(?!,)(,?[0-9]+)+$/
,
(?!,)
,然后我们将可选的,
放置在数字前面。这是可选的,因为数字的第一个块不需要它。