Javascript:如果条件不适用于正则表达式,则很多

时间:2017-11-13 10:59:17

标签: javascript regex if-statement

我有两个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] regexp中,所以regexp test必须返回true):

true : 5
true : 8

那为什么它不起作用?你知道吗?

亲切地谢谢你。

1 个答案:

答案 0 :(得分:0)

尝试使用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]);
  }
}