简体   繁体   中英

Compare part of string in JavaScript

How do I compare a part of a string - for example if I want to compare if string A is part of string B. I would like to find out this: When string A = "abcd" and string B = "abcdef" it needs to return true. How do I do that in JavaScript? If I use substring(start, end) I do not know what values to pass to the start and end parameters. Any ideas?

You can use indexOf :

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

Like this:

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

Note that this is case-sensitive. If you want a case-insensitive search, you can write

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

Or,

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

And a general version for a case-insensitive search, you can set strings of any case

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

Javascript ES6/ES2015 has String.includes() , which has nearly all browser compatibility except for IE . (But what else is new?)

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

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

Using indexOf or match is unnecessarily slow if you are dealing with large strings and you only need to validate the beginning of the string. A better solution is to use startsWith() or its equivalent function-- from 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;
  };
}

You can try the javascript search also

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

Using regular expression might help you.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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