【问题标题】:JavaScript - Searching for a char in string using indexOf()JavaScript - 使用 indexOf() 在字符串中搜索字符
【发布时间】:2016-04-11 13:07:29
【问题描述】:

验证该字符不在字符串中时,使用if(string.indexOf("x") < 0) { ... }if(string.indexOf("x") == -1) { ... } 时是否相同?

在某些情况下string.indexOf("x") 会是-2 或更低吗?

感谢您分享您的经验。

【问题讨论】:

  • 不,如果在字符串中找不到子字符串,它将始终为-1。没有机会返回低于该值的值。
  • indexOf() 方法返回指定值在字符串中第一次出现的位置。如果要搜索的值从未出现,则此方法返回 -1。 w3schools.com/jsref/jsref_indexof.asp

标签: javascript string if-statement indexof


【解决方案1】:

在某些情况下 string.indexOf("x") 会是 -2 或更低吗?

没有。这不可以。仅当没有匹配项时,索引才为负 (-1)。

当验证字符不在字符串中时,使用时是否相同 if(string.indexOf("x")

当然它们是一样的,因为-1<0

【讨论】:

    【解决方案2】:

    根据indexOf()specification,它可以返回一个值:-1(如果没有找到子字符串)和从0string.length - 1(表示匹配位置)。


    更好的方法是使用 ECMAScript 6 method includes()

    var string = 'x-files';
    
    string.includes('x'); // prints true
    

    【讨论】:

      【解决方案3】:

      它们是一样的:

      “indexOf() 方法返回可以在数组中找到给定元素的第一个索引,如果不存在,则返回 -1。”

      MDN

      【讨论】:

        猜你喜欢
        • 2015-01-10
        • 1970-01-01
        • 2011-06-13
        • 1970-01-01
        • 2019-05-12
        • 1970-01-01
        • 2015-12-24
        • 2013-04-13
        • 1970-01-01
        相关资源
        最近更新 更多