我写了一个简单的Regex来确定文本框是否仅用数字填充。
document.getElementById("id").value.split(/\d/).length;
如果此行的结果等于0,则该语句为true,但是当
value.split(/\d/)
时,alert()
似乎返回逗号,因此长度为1(alert()
仅返回将其用于value
时所写的内容)在ie中,这是完美的,但是在chrome中,我得到一个逗号。为什么会发生这种情况,我的正则表达式不正确?我也尝试了
/^\d+$/
,但是得到了相同的结果。 最佳答案
使用RegExp.test
方法更合适:
/^\d+$/.test(document.getElementById('id').value)
例如:
> /^\d+$/.test('1234')
true
> /^\d+$/.test('12,34')
false
> /^\d+$/.test('abcd')
false
.split(/\d/)
返回n + 1个项目的数组。 (n =包含的位数):> '1234'.split(/\d/)
["", "", "", "", ""]
> '1234'.split(/\d/).length
5
> 'asdf'.split(/\d/)
["asdf"]
>
'asdf'.split(/\d/).length
1
为什么得到
,,,
? alert
将参数转换为字符串:> String('1234'.split(/\d/)) // === String(['', '', '', '', ''])
",,,,"
关于javascript - Javascript split()正则表达式在Chrome中返回不需要的逗号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19906297/