In JavaScript, working with text often requires searching for specific words, phrases, or characters within a string. JavaScript provides several built-in string methods for searching, matching, and locating text.
This tutorial will teach you how to use key string search methods effectively, including indexOf()
, lastIndexOf()
, search()
, includes()
, match()
, startsWith()
, and endsWith()
.
1. indexOf()
The indexOf()
method returns the first position of a specified value in a string. If the value is not found, it returns -1
.
javascriptCopyEditlet text = "JavaScript is awesome!";
let position = text.indexOf("is");
console.log(position); // 11
You can also pass a second argument to start searching from a specific index:
javascriptCopyEditconsole.log(text.indexOf("a", 2)); // 3
2. lastIndexOf()
lastIndexOf()
works like indexOf()
, but it searches from the end of the string.
javascriptCopyEditlet phrase = "I love JavaScript and Java";
console.log(phrase.lastIndexOf("Java")); // 22
If not found, it returns -1
.
3. includes()
includes()
checks if a string contains a specified substring. It returns true
or false
.
javascriptCopyEditlet msg = "Hello, world!";
console.log(msg.includes("world")); // true
console.log(msg.includes("World")); // false (case-sensitive)
You can also specify a start position:
javascriptCopyEditconsole.log(msg.includes("Hello", 5)); // false
4. search()
The search()
method searches for a match using a regular expression and returns the position of the first match. Unlike indexOf()
, search()
only accepts regular expressions.
javascriptCopyEditlet sentence = "The quick brown fox jumps over the lazy dog.";
let pos = sentence.search(/fox/);
console.log(pos); // 16
If no match is found, it returns -1
.
5. match()
The match()
method searches a string for a match using a regular expression and returns the matched results.
Basic match:
javascriptCopyEditlet result = sentence.match(/fox/);
console.log(result[0]); // "fox"
Match all occurrences (with global flag g
):
javascriptCopyEditlet text = "cat bat rat cat";
let matches = text.match(/cat/g);
console.log(matches); // ["cat", "cat"]
6. startsWith()
This method checks if a string starts with the given substring.
javascriptCopyEditlet greeting = "Hello, world!";
console.log(greeting.startsWith("Hello")); // true
console.log(greeting.startsWith("world")); // false
You can also pass a position to start checking from:
javascriptCopyEditconsole.log(greeting.startsWith("world", 7)); // true
7. endsWith()
This method checks if a string ends with the given substring.
javascriptCopyEditlet filename = "report.pdf";
console.log(filename.endsWith(".pdf")); // true
You can also check against a portion of the string:
javascriptCopyEditconsole.log(filename.endsWith("report", 6)); // true
8. Comparing Search Methods
Method | Returns | Use Case |
---|---|---|
indexOf() | Index or -1 | Find position of a substring |
lastIndexOf() | Last index or -1 | Find last occurrence |
includes() | true or false | Check if text exists |
search() | Index or -1 | Search using regular expressions |
match() | Array or null | Extract matched values |
startsWith() | true or false | Check string start |
endsWith() | true or false | Check string end |
9. Case Sensitivity
All string search methods in JavaScript are case-sensitive by default.
javascriptCopyEditlet word = "JavaScript";
console.log(word.includes("java")); // false
To do case-insensitive searching, use regular expressions with the i
flag:
javascriptCopyEditconsole.log(word.search(/java/i)); // 0
10. Real-World Example: Simple Search Filter
javascriptCopyEditlet products = ["Laptop", "Phone", "Tablet", "Monitor"];
let keyword = "ph";
let filtered = products.filter(item => item.toLowerCase().includes(keyword.toLowerCase()));
console.log(filtered); // ["Phone"]
This technique is useful in search bars and filter systems.
Conclusion
JavaScript offers several powerful string search methods. Here’s a quick recap:
- Use
indexOf()
andlastIndexOf()
for positions. - Use
includes()
to check if a string exists. - Use
search()
andmatch()
for regular expressions. - Use
startsWith()
andendsWith()
to check string boundaries.