30

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?

1
  • 1
    you need to give more description like and some examples or codes Commented Dec 12, 2012 at 6:22

7 Answers 7

27

You can use indexOf:

if ( stringB.indexOf( stringA ) > -1 ) {
  // String B contains String A
} 
Sign up to request clarification or add additional context in comments.

Comments

19

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

19

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

3 Comments

That's why God gave us Babel.
what if we want to check that the partial string is at the beginning of the full length string?
@SteveW Then you use a different function listed in other answers, like indexOf
5

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;
  };
}

Comments

3

"abcdef".indexOf("abcd") !== -1 should be okay

Comments

2

Using regular expression might help you.

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

Comments

1

You can try the javascript search also

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.