我有一个文本框,它可以有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)
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 , (?!,),然后我们将可选,字符放在数字之前。它是可选的,因为第一个数字块不需要它。
| 归档时间: |
|
| 查看次数: |
12682 次 |
| 最近记录: |