我有两个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
那为什么它不起作用?你知道吗?
亲切地谢谢你。
答案 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]);
}
}