indexOf在javascript中的混乱

时间:2015-12-08 04:14:28

标签: javascript jquery

var err = "No msg";

if(myVar.indexOf(err) > -1){
//this means myVar NOT containing No msg
}

我的逻辑是否正确?我正在执行if语句,如果执行..

3 个答案:

答案 0 :(得分:5)

要检查字符串是否包含子字符串,请使用

if(myVar.indexOf(err) === -1) {

或者

!~myVar.indexOf(err)

~BitWise NOT operator "在每个位上执行NOT运算符。不是a得到a的倒置值(也就是一个补码)。" !Logical NOT,所以将索引转换为布尔结果。

如果找不到子字符串,

String#indexOf将返回-1。

答案 1 :(得分:0)

没有你的逻辑不正确。 indexof如果子字符串不存在则返回-1。

    var err = "No msg";

if(myVar.indexOf(err) == -1){
//this means myVar NOT containing No msg
}

答案 2 :(得分:0)

var err = "No msg";
if(myVar.indexOf(err) > -1){
//this means myVar contains "No msg"
}
else{
//this means myVar does NOT contain "No msg"
}

或者

var err = "No msg";
if(myVar.indexOf(err) === -1){
//this means myVar does NOT contain "No msg"
}

indexOf返回匹配字符串的第一个字符的索引。 所以,如果

myVar = "There is No msg in here";
myVar.indexOf("No msg") == 9; //true

但是

myVar = "There is nothing in here";
myVar.indexOf("No msg") == -1; //true

这是因为indexOf()在找不到它要找的内容时返回-1。