LanguagesJavaScriptJavaScript Methods for Searching Strings

JavaScript Methods for Searching Strings

Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

JavaScript tutorials

Need to check whether a JavaScript string contains a specific character or substring? Or maybe you need to know where it appears in the string. In any event, JavaScript offers several ways to accomplish both these objectives. This web development tutorial will present an overview of the String’s many methods as well as some examples of how to use the string object’s methods dedicated to finding a substring within another string.

Read: Top HTML and CSS Online Courses for Web Developers

JavaScript String Methods

Take a look at the full list of string methods below and you will notice that there are more methods for searching than any other purpose, which highlights their importance:

Searching

  • search(): searches for specified value in the string
  • indexOf(): returns the first index of occurrence of a value
  • lastIndexOf(): returns the last index of occurrence of a value
  • includes(): checks if given string is found inside a string
  • startsWith(): checks if a string begins with a specified string
  • endsWith(): checks if a string ends with a specified string
  • match(): returns result of matching string with a regex
  • matchAll(): returns iterator of results matching with a regex

Trimming

  • trim(): removes whitespace from both ends of a string
  • trimStart(): removes whitespace from the beginning of a string
  • trimEnd(): removes whitespace from the end of a string

Padding

  • padStart(): pads a string at the start to a given length
  • padEnd(): pads a string at the end to a given length

Extracting

  • split(): returns the string divided into list of substring
  • substring()/substr(): return a specified part of the string
  • slice(): extracts and returns a section of the string

Concatenating

  • concat (): concatenates the arguments to the calling string

Replacing

  • replace(): replaces a substring/pattern in the string
  • replaceAll(): returns string by replacing all matching patterns

Changing Case

  • toUpperCase(): returns uppercase of a string
  • toLowerCase(): returns lowercase representation of a string

Characters and Unicode

  • charAt(): returns character at a specified index in string
  • charCodeAt(): returns Unicode of the character at given index
  • fromCharCode(): returns a string from the given UTF-16 code units
  • codePointAt(): returns the Unicode point value at given index
  • fromCodePoint(): returns a string using the given code points

Miscellaneous JavaScript String Search Methods

  • localeCompare(): compares two strings in the current locale
  • repeat(): returns a string by repeating it given times

Read: Best Online Courses to Learn JavaScript

Working with the JavaScript String Object’s Search Methods

In this section of our JavaScript String method tutorial, we will go over each of the methods listed in the Searching category above and cover their syntax and usage.

search()

The search() method matches a string against a regular expression or string searchValue. In the case of the latter, the string is converted to a regular expression by the method before proceeding with the search. The search() method returns the index (position) of the first match (starting from 0) or -1 if no match is found. The search() method is case sensitive unless the i flag is included in the regular expression.

Syntax of search() Method in JavaScript

string.search(searchValue)

Examples of search() Method in JavaScript

let text = "Please locate where 'locate' occurs!";
// 1st instance of "locate"
document.writeln(text.search("locate")); // 7

text = 'The quick brown fox jumps over the lazy dog. If the dog barked, was it really lazy?';
// Any character that is not a word character or whitespace
document.writeln(text.search(/[^ws]/g)); // 43

text = "Mr. Blue has a blue house";
// Case insensitive search for "blue"
document.writeln(text.search(/blue/i)); // 4

indexOf()/lastIndexOf() Method in JavaScript

The indexOf() and lastIndexOf() methods return the index of (position of) the first and last occurrence of a string in a string respectively or -1 if no match is found.

Syntax of indexOf()/lastIndexOf() Method

string.indexOf(searchValue)
string.lastIndexOf(searchValue)

Examples of indexOf()/lastIndexOf() Method

let text = "Please locate where 'locate' occurs!";
text.indexOf("locate");     // 7
text.lastIndexOf("locate"); // 21
text.lastIndexOf("text");   // -1 (not found)

The Difference Between search() and indexOf()

The search() and indexOf() methods are strikingly similar, albeit with a couple of notable differences:

  • The search() cannot take a start position argument.
  • The indexOf() method cannot search using a regular expression.

includes() Method in JavaScript

The includes() method returns true if a string contains a specified string value. Otherwise it returns false.

Syntax of includes() Method

string.includes(searchValue)

Examples of include() Method

let text = "Please locate where 'locate' occurs!";
text.includes("locate"); // true
text.includes("find");   // false

Note that the includes() method is an ES6 feature and is not supported in Internet Explorer.

startsWith()/endsWith() Method in JavaScript

The startsWith() and endsWith() methods return true if a string begins or ends with a specified value, respectively. Otherwise, false is returned.

Syntax of startsWith()/endsWith() Method

string.startsWith(searchValue)
string.endsWith(searchValue)

Examples of startsWith()/endsWith() Method

let text = "Please locate where 'locate' occurs!";
text.startsWith("Please"); // true
text.startsWith("locate"); // false

text.endsWith("occurs!"); // true
text.endsWith("locate");  // false

Note that the startsWith() and endsWith() methods are an ES6 feature and are not supported in Internet Explorer.

match()/matchAll() Method in JavaScript

Both the match() and matchAll() methods return the results of matching a string against a supplied string or regular expression. The difference is that match() returns the results in an array while matchAll() returns an iterator. Introduced in ES6, iterators allow you to iterate over any object that follows the Iterator specification.

Syntax of match()/matchAll()

string.match(searchValue)
string.matchAll(searchValue)

Examples of match()/matchAll()

let text = "Please locate where 'locate' occurs!";
text.match("cat"); // [cat]
text.match(/cat/g); // [cat, cat]

text.matchAll("occurs!"); // Iterator with 1 result
text.matchAll("locate");  // Iterator with 2 results

Note that the matchAll() method is an ES2020 feature and are definitely not supported in Internet Explorer.

Read: Top Collaboration Tools for Web Developers

How to Invoke a String Method in JavaScript

The JavaScript string is a data type unlike any other in that it can be treated as either a primitive or object depending on whether it is assigned as a string literal or created using the String constructor. Does that mean that primitive Strings do not have access to the String object’s many useful methods? Not at all. Whenever a method is invoked on a primitive string, JavaScript will automatically wrap the string primitive and call the method on the wrapper object instead. So, however you create your strings, you can always access their methods.

You can see all of the methods from this tutorial in action in the codepen demo.

Final Thoughts on JavaScript Methods for Searching Strings

This web development tutorial presented an overview of JavaScript’s String’s many methods as well as some examples of how to use them. In the next installment, we will be taking a look at the trimming, padding, extracting, and concatenating methods of the String object. That will leave the remaining methods for the third and final installment.

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

Related Stories