繁体   English   中英

比较JavaScript中的部分字符串

[英]Compare part of string in JavaScript

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

你可以使用indexOf

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

像这样:

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)

Javascript ES6 / ES2015具有String.includes()除IE之外几乎具有所有浏览器兼容性。 (但还有什么是新的?)

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

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

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

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

您也可以尝试javascript搜索

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM