gpt4 book ai didi

Javascript split() 正则表达式在 Chrome 中返回不需要的逗号

转载 作者:行者123 更新时间:2023-11-30 08:48:20 25 4
gpt4 key购买 nike

我写了一个简单的正则表达式来确定文本框是否只填充了数字。

document.getElementById("id").value.split(/\d/).length;

如果此行的结果等于 0,则语句为真,但当我 alert() 时,value.split(/\d/) 似乎返回逗号所以长度为 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 split() 正则表达式在 Chrome 中返回不需要的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19906297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com