比较JavaScript中的部分字符串

时间:2012-12-12 06:19:18

标签: javascript string

如何比较字符串的一部分 - 例如,如果我想比较字符串A是否为字符串B的一部分。我想知道这一点:当string A = "abcd"string B = "abcdef"时需要回归真实。我如何在JavaScript中执行此操作?如果我使用substring(start, end),我不知道要传递给startend参数的值。有什么想法吗?

7 个答案:

答案 0 :(得分:18)

您可以使用indexOf

if ( stringB.indexOf( stringA ) > -1 ) {
  // String B contains String A
} 

答案 1 :(得分:11)

像这样:

var str = "abcdef";
if (str.indexOf("abcd") >= 0)

请注意,这是区分大小写的。 如果您想要不区分大小写的搜索,可以编写

if (str.toLowerCase().indexOf("abcd") >= 0)

或者,

if (/abcd/i.test(str))

对于不区分大小写的搜索的一般版本,您可以设置任何大小写的字符串

if (stringA.toLowerCase().indexOf(stringB.toLowerCase()) >= 0)

答案 2 :(得分:6)

Javascript ES6 / ES2015具有String.includes(),几乎具有所有浏览器兼容性except for IE。 (但是还有什么新东西?)

let string = "abcdef";
string.includes("abcd"); //true
string.includes("aBc"); //false - .includes() is case sensitive

答案 3 :(得分:2)

如果要处理大字符串并且只需要验证字符串的开头,则使用indexOf或match会非常慢。更好的解决方案是使用来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith的startsWith()或其等效函数:

if (!String.prototype.startsWith) {
    String.prototype.startsWith = function(searchString, position){
      position = position || 0;
      return this.substr(position, searchString.length) === searchString;
  };
}

答案 4 :(得分:1)

"abcdef".indexOf("abcd") !== -1应该没问题

答案 5 :(得分:1)

您也可以尝试使用javascript搜索

if( stringA.search(stringB) > -1){
}

答案 6 :(得分:1)

使用正则表达式可能会对您有所帮助。

var patt = new RegExp(stringA, 'i');
if(stringB.match(patt)){                            
   return true;
}