猿问

为什么我的 .indexOf 不读取字符串中字符的位置

我目前正在尝试让我的 .indexOf 读取我的字符在我的字符串中的位置。


代码如下所示:


var myString = 'I\'m a "fun ninja" string';


   if (myString.indexOf("ninja") === -1)

    {

        

        console.log ("The word ninja starts at position " + myString.indexOf("ninja"));


    } else {

        

        console.log ("The word ninja is not in the string");

        

    }

它应该说,“忍者这个词从位置 11 开始”,但它最终说的是“忍者这个词不在字符串中”,而它显然在字符串中。谁能告诉我我做错了什么?


犯罪嫌疑人X
浏览 157回答 2
2回答

www说

问题出在你的 if 语句中,你正在比较 indexOf 的结果是否为 === -1,但如果 indexOf 函数返回 -1 则意味着未找到子字符串,因为他在你的字符串中找到“ninja”它不执行代码而是跳转到 else。它应该是:if (myString.indexOf("ninja") != -1){    console.log ("The word ninja starts at position " + myString.indexOf("ninja"));} else {    console.log ("The word ninja is not in the string");}

杨__羊羊

这会给你想要的结果。2件事情要注意:该字符串是使用单引号构建的,因此其中的任何单引号都需要使用反斜杠进行转义\声明中的比较if是错误的。您应该检查索引是否不是 -1,这意味着该字符串确实存在。var myString = 'I\'m a "fun ninja" string';if (myString.indexOf("ninja") !== -1) {   console.log ("The word ninja starts at position " + myString.indexOf("ninja"));} else {   console.log ("The word ninja is not in the string");}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答