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?
-
1you need to give more description like and some examples or codespolin– polin2012-12-12 06:22:42 +00:00Commented Dec 12, 2012 at 6:22
7 Answers
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)
Comments
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
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;
};
}