查找字符串

时间:2016-07-28 12:41:23

标签: javascript arrays

我有一长串带有页面ID的字符串;当当前页面ID与数组中的一个匹配时,需要发生填充(在此测试中发出警报)。 警报会弹出任何页面,无论该网址是否包含数组中的一个ID。我的if语句有什么问题:if(pageHref.indexOf(id))?谢谢你的任何建议

var pageHref = window.location.href;
var ids = ['14528','14417','17529'];
for (var i = 0; i < ids.length; i++) {
    var id = ids[i];
    if (id.length > 0) {
        if(pageHref.indexOf(id)){
            //do something
            alert('a');
        }
    }
}

2 个答案:

答案 0 :(得分:-1)

博文this post有一个表格,用于解释javascript条件语句中哪些值评估为true。对于数值,它仅表示+ 0,-0和NaN评估为假。因为indexOf在没有匹配的情况下返回-1,所以对于不匹配的id,它的计算结果为true。您可能想要使用:

if(pageHref.indexOf(id) > -1)

答案 1 :(得分:-2)

IndexOf返回一个数字,如果数字为-1,则没有匹配。

试试例子。 pageHref.indexOf(id) != -1