gpt4 book ai didi

JavaScript 正则表达式与预期相反

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

我有一个与预期相反的正则表达式...我有一些可以是数字也可以不是数字的东西。我尝试使用 isNaN 但它给出了奇怪的结果,所以我想我会尝试使用正则表达式。这给出了更奇怪的结果。 html看起来像 <span class="label">31</span>我通过 var text = document.querySelectorAll('.label, .content'); 获取它

然后我通过以下方式处理它:

for (var i=0; i<text.length; i++) {
if (text[i].innerText.search(/^[0-9]+$/)) {
// do number stuff
}
}

但它会匹配所有非数字的内容,并且不会处理数字。如果我将正则表达式更改为 /^[^0-9]+$/ (否定字符)它确实匹配数字。这与我的预期相反!有人知道会发生什么吗?

谢谢。

最佳答案

search methodindexOf 一样工作并返回找到正则表达式的索引,如果没有找到则返回 -1。由于您的正则表达式仅在位置 0 处匹配,因此它仅返回那个或 -1 - 虽然 -1 是一个真值,但 0 是不是。这就是行为“反转”的原因。

你可以做

if (text[i].innerText.search(/^[0-9]+$/) == 0) 

但是你最好使用test method返回您想要的 bool 值的正则表达式对象:

if (/^[0-9]+$/.test(text[i].innerText)) 

关于JavaScript 正则表达式与预期相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26772038/

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