为什么我在JavaScript中找不到indexOf中的斜杠?

时间:2013-10-02 14:09:39

标签: javascript

mystring = "playlist/323";
if(mystring.indexOf('playlist/') == 1) {
    alert("We got it");
} else {
    alert("We don't");
}

我希望它能显示“我们得到了它”,但事实并非如此。

看我的小提琴http://jsfiddle.net/P2TcW/

5 个答案:

答案 0 :(得分:4)

索引在javascript中从零开始,你的if语句应如下所示:

if(mystring.indexOf('playlist/') == 0)

答案 1 :(得分:2)

在您的情况下,/的索引不应返回1。如果您的字符串中不存在,indexOf将返回-1

if(mystring.indexOf('playlist/') > -1) {
    alert("We got it");
} else {
    alert("We don't");
}

答案 2 :(得分:1)

因为字符串中的第一个字符是索引0而不是1。

解决方案是:

if(mystring.indexOf('playlist/') === 0)

(使用严格相等运算符,这是一个很好的做法,因为它测试类型和值而不仅仅是值。)

答案 3 :(得分:1)

indexOf不等于1,因为字符串“playlist /”的索引实际上是0,它从0开始,如果你得到的东西不是-1,你就有匹配

答案 4 :(得分:1)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

我认为您解释 indexOf 的方式存在轻微的误解。

alert(mystring.indexOf('/')); //gives you 8

alert(mystring.indexOf('l')); //gives you 1

alert(mystring.indexOf('playlist/')); //gives you 0

if(mystring.indexOf('playlist/') == 0){ //correct way
alert("we got it");
}