我有两个 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]);
}
}