mystring = "playlist/323";
if(mystring.indexOf('playlist/') == 1) {
alert("We got it");
} else {
alert("We don't");
}
我希望它能显示“我们得到了它”,但事实并非如此。
答案 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");
}