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.