Searching within a string

When you are just starting out with JavaScript or coming from another language it isn’t always clear how to do seemingly easy tasks, for example finding a certain value in a string. This article covers some built-in JavaScript methods you can use to find characters or words inside a string.

String.prototype.indexOf()

The indexOf() method is the most basic one and also has the best browser support. This function returns the position of the first occurrence of a specified value in a string. If the value is not found it will return -1.

var str = "The quick brown fox jumps over the lazy dog.";
var query = "jump";

console.log(str.indexOf(query)); // 20

In the example above we can see that the term jump is found at position 20 of the sentence.

String.prototype.search()

The search() method matches a regular expression with a string. If the query is not a regular expression it is automatically converted to RegExp. This allows some more advanced searching.

var str = "The quick brown fox jumps over the lazy dog.";
var query = "jump";
var regex = /jUmPs/gi; // global + case insensitive regex

console.log(str.search(query)); // 20
console.log(str.search(regex)); // 20

String.prototype.match()

The match() method works the same as the search() method. It also requires a regular expression as a parameter but instead returns an Array containing the entire matched string as the first element.

var str = "The quick brown fox jumps over the lazy dog.";
var query = "jump";

console.log(str.match(query)); // jump

String.prototype.includes()

This method is probably the simplest to work with. includes() return true if a string is found inside another string and false when it is not found. The method is case sensitive, so make sure to convert your query using toLowerCase() for example when using this method.

var str = "The quick brown fox jumps over the lazy dog.";

console.log(str.includes("fox")); // true
console.log(str.includes("quick red fox")); // false

Note that includes() is not supported in Internet Explorer.