How to replace substring in JavaScript? [SOLVED]


Written by - Olorunfemi Akinlua
Reviewed by - Deepak Prasad

Introduction

Strings are everywhere in JavaScript, a sequence of characters that allows you to combine or make statements. With it (as an object) comes different operations that allow you to manipulate them. Though immutable, the language provides mediums and interfaces to play with strings. One such methods is the JavaScript's replace substring method.

The replace() method is a built-in function in JavaScript that is used to replace all occurrences of a specified substring within a string with another substring or value. The replace() method is commonly used in web development to manipulate text strings, such as modifying URLs, formatting user input, or sanitizing data. The replace() method takes two parameters: the first parameter is the substring or regular expression to match, and the second parameter is the string or value to replace the matched substring with. If the first parameter is a regular expression, it can also include flags to modify the matching behavior. The replace() method returns a new string with the replaced substring, leaving the original string unchanged.

In this article, we will explore the syntax, ways to use the replace() method especially with regular expressions.

 

Syntax and Parameters of the replace() Method

The syntax for the replace() substring method is as follows:

string.replace(searchValue, replaceValue)

The method takes two parameters: searchValue and replaceValue.

  • searchValue can be either a string or a regular expression, and
  • replaceValue can be either a string or a function.

 

Using replace() Method

To illustrate the possible approaches you can make in replacing substrings in JavaScript, here are some examples of how to use the replace() substring method.

 

Replacing a Single Substring

The following example shows how to replace a single substring in a string:

let string = "Hello, User!";
let newString = string.replace("User", "Deepak");
console.log(newString);

Output

Hello, Deepak!

 

Replacing Multiple Substrings

The replace() substring method can also replace multiple substrings in a string using regular expression flags - /g. The following example shows how to replace multiple substrings in a string:

let string = "I love JavaScript and JavaScript loves me!";
let newString = string.replace(/JavaScript/g, "Go");
console.log(newString);

Output

I love Go and Go loves me!

In this example, we replace all occurrences of the substring "JavaScript" with "Go" using a regular expression with the g flag, which stands for global.

 

Replacing with Regular Expressions

Regular expressions can be used as the first parameter of the replace() method to perform more complex substitutions. Regular expressions are powerful patterns that can be used to match and replace text based on a set of rules.

Regular expressions can be used in the replace() method by enclosing the pattern in forward slashes (/). For example, /pattern/ would be a regular expression that matches the literal string "pattern".

Regular expressions can also include special characters and character classes that allow for more complex pattern matching. For example, the . character in a regular expression matches any single character, and the * character matches zero or more occurrences of the preceding character.

let string = "The price is $20.50";
let newString = string.replace(/\\$(\\d+)/, "€$1");
console.log(newString);

Output

The price is €20.50

In this example, we use a regular expression to match the substring "$20.50" and replace it with "€20.50". The regular expression /\\$(\\d+)/ matches a dollar sign followed by one or more digits and captures the digits using parentheses. The replacement string "€$1" uses the captured digits in the replacement.

 

Using Flags to modify the behavior of regular expressions

Flags can be used to modify the behavior of regular expressions in the replace() method. Flags are appended to the regular expression pattern and control the matching behavior. The following flags are commonly used in the replace() method:

  • g: Global search, matches all occurrences of the pattern in the string.
  • i: Case-insensitive search, ignores the case of the letters in the pattern.
  • m: Multiline search, matches the pattern across multiple lines.

For example, to replace all occurrences of the substring "hello" in a case-insensitive manner, you can use the i flag as follows:

let str = "Hello, hello, HELLO!";
let newStr = str.replace(/hello/gi, "hi");
console.log(newStr); // Output: "hi, hi, hi!"

 

Using Replacement patterns

Replacement patterns can be used in the replace() method to create dynamic replacements based on the matched substring. Replacement patterns are special sequences that start with a dollar sign ($) followed by a number or name, and are used to reference capture groups in the regular expression.

For example, to replace all occurrences of a date in the format "MM/DD/YYYY" with the format "YYYY-MM-DD", you can use the following regular expression:

let str = "Today is 04/20/2023";
let newStr = str.replace(/(\d{2})\/(\d{2})\/(\d{4})/g, "$3-$1-$2");
console.log(newStr); // Output: "Today is 2023-04-20"

In this example, the regular expression /(\d{2})\/(\d{2})\/(\d{4})/g matches any date in the format "MM/DD/YYYY". The replacement string "$3-$1-$2" puts the year first, followed by a dash, the month, another dash, and then the day.

 

Function as a replacement

A function can be used as the second parameter of the replace() method to perform more complex replacements. The function is called for each match and returns the replacement value.

For example, to replace all occurrences of a substring with a capitalized version of the substring, you can use the following code:

let str = "the quick brown fox jumps over the lazy dog";
let newStr = str.replace(/\b\w/g, function(match) {
  return match.toUpperCase();
});
console.log(newStr); // Output: "The Quick Brown Fox Jumps Over The Lazy Dog"

In this example, the regular expression /\b\w/g matches the first letter of each word in the string. The function takes the matched letter as a parameter and returns the capitalized version of the letter. The replace() method then replaces each matched letter with its capitalized version.

 

Summary

To summarize, the replace() method is a built-in function in JavaScript that is used to replace all occurrences of a specified substring within a string with another substring or value. It takes two parameters: searchValue and replaceValue. The searchValue parameter can be either a string or a regular expression, while the replaceValue parameter is the string or value that will replace the matched substring(s).

Regular expressions can be used as the first parameter of the replace() method to perform more complex substitutions. Flags can be used to modify the behavior of regular expressions in the replace() method, while replacement patterns can be used to create dynamic replacements based on the matched substring.

In addition, a function can be used as the second parameter of the replace() method to perform more complex replacements. This allows for more advanced string manipulations that are not possible with simple string replacement.

 

References

String.prototype.replace() - JavaScript | MDN (mozilla.org)

 

Views: 2

Olorunfemi Akinlua

He is boasting over five years of experience in JavaScript, specializing in technical content writing and UX design. With a keen focus on programming languages, he crafts compelling content and designs user-friendly interfaces to enhance digital experiences across various domains. You can connect with him on LinkedIn.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to admin@golinuxcloud.com

Thank You for your support!!

Leave a Comment