Javascript:许多if条件不适用于正则表达式



我有两个 if 条件来检查一个值,这两个条件是相同的。

我必须使用 if 条件两次,而不是 if 和 else if。

下面的代码:

regexp = new RegExp("[458]", "gi");
valuesArray = [5, 8];
for(var i = 0; i < valuesArray.length; i++)
{   
    if(regexp.test(valuesArray[i]) == true)
    {   
        console.log("true : "+valuesArray[i]);
    }
    if(regexp.test(valuesArray[i]) == false)
    {   
        console.log("false : "+valuesArray[i]);
    }
}

javascript 控制台输出是:

true : 5
false : 5
true : 8
false : 8

但这应该是(因为 5 和 8 在 [458] 正则表达式中,所以正则表达式测试必须返回 true(:

true : 5
true : 8

那么为什么它不起作用呢?你有什么想法吗?

谢谢,衷心的。

尝试使用regexp = new RegExp("[458]", "i");而不是regexp = new RegExp("[458]", "gi");

因为

g
global match; find all matches rather than stopping after the first match
i
ignore case

regexp = new RegExp("[458]", "i");
valuesArray = [5, 8];
for (var i = 0; i < valuesArray.length; i++) {
  if (regexp.test(valuesArray[i]) == true) {
    console.log("true : " + valuesArray[i]);
  }
  if (regexp.test(valuesArray[i]) == false) {
    console.log("false : " + valuesArray[i]);
  }
}

最新更新