Home > Software > How to Check if a String Contains a Substring in TypeScript

How to Check if a String Contains a Substring in TypeScript

Anastasios Antoniadis

Share on X (Twitter) Share on Facebook Share on Pinterest Share on LinkedInTypeScript, as a superset of JavaScript, inherits its string manipulation capabilities, including methods to check if a string contains another string. This functionality is crucial in many programming scenarios, such as input validation, parsing, and text processing. This article delves into how to …

TypeScript

TypeScript, as a superset of JavaScript, inherits its string manipulation capabilities, including methods to check if a string contains another string. This functionality is crucial in many programming scenarios, such as input validation, parsing, and text processing. This article delves into how to determine if a string contains a specific substring in TypeScript, exploring different methods and their appropriate use cases.

Using String.prototype.includes()

The most straightforward way to check if a string contains another string in TypeScript (and JavaScript) is by using the includes() method. This method performs a case-sensitive search to see if the string contains the specified substring and returns true if the substring is found, and false otherwise.

Syntax

str.includes(searchString, position?);
  • searchString: The string to search for.
  • position (optional): The position within the string at which to begin the search. The default is 0.

Example

const text: string = "Hello, TypeScript!";
const substring: string = "Type";

const containsSubstring: boolean = text.includes(substring);
console.log(containsSubstring); // Output: true

Using String.prototype.indexOf()

Another method to check for the presence of a substring is indexOf(), which returns the index of the first occurrence of the specified value, or -1 if the value is not found. While indexOf() is slightly more verbose than includes(), it provides the additional benefit of knowing the substring’s position.

Syntax

str.indexOf(searchValue, fromIndex?);
  • searchValue: The string to search for.
  • fromIndex (optional): The index to start the search at. If omitted, the search starts at the beginning of the string.

Example

const text: string = "Hello, TypeScript!";
const substring: string = "Type";

const index: number = text.indexOf(substring);
if (index !== -1) {
    console.log(`Substring found at index ${index}.`); // Output: Substring found at index 7.
} else {
    console.log("Substring not found.");
}

Using Regular Expressions with String.prototype.match()

For more complex search patterns or case-insensitive searches, regular expressions can be used with the match() method. This method attempts to match the string against a regular expression pattern.

Syntax

str.match(regexp);
  • regexp: A regular expression object. If a non-RegExp object obj is passed, it is implicitly converted to a RegExp by using new RegExp(obj).

Example

const text: string = "Hello, TypeScript!";
const pattern: RegExp = /type/i; // 'i' flag for case-insensitive search

const result: RegExpMatchArray | null = text.match(pattern);
if (result) {
    console.log("Substring found."); // Output: Substring found.
} else {
    console.log("Substring not found.");
}

Choosing the Right Method

  • Use includes() for straightforward, case-sensitive checks when you only need to know whether the substring exists.
  • Opt for indexOf() when you need the position of the substring in addition to knowing whether it exists.
  • Leverage match() with regular expressions for complex searches, including case-insensitive checks or pattern matching.

Conclusion

TypeScript offers multiple ways to check if a string contains a substring, each suited to different requirements. Whether you need a simple existence check, the position of the substring, or to perform complex pattern matching, TypeScript’s string methods provide the tools you need to manipulate and interrogate strings effectively. By understanding and applying these methods appropriately, developers can handle a wide range of text processing tasks in TypeScript with ease.

Anastasios Antoniadis
Follow me
Latest posts by Anastasios Antoniadis (see all)
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x