Home >Web Front-end >JS Tutorial >How to get the string between curly braces using JavaScript's regular expression?

How to get the string between curly braces using JavaScript's regular expression?

PHPz
PHPzforward
2023-08-23 08:41:071668browse

How to get the string between curly braces using JavaScripts regular expression?

We can create a regular expression so that it can find all substrings between curly braces. After that, we can use the exec() or match() method to extract the matching substring.

In this tutorial, we will learn to use JavaScript’s regular expressions to get the string between curly braces. For example, if we have a string like 'This is a {string} with {curly} braces, we need to extract all substrings that reside between the curly braces. .

Use the exec() method and regular expressions to get the string between curly braces

The exec() method is usually used with regular expressions to find matching substrings. It returns all matching results in array format, or null if no matching is found.

grammar

Users can follow the syntax below to use the exec() method with the regular expression to get all substrings between the curly braces.

var regex = /{([^}]+)}/g;
while (match = regex.exec(originalStr)) {
   results.push(match[1]);
}

In the above syntax, we created a regular expression to find the substring between curly braces. We then loop through the matches array and get all matching occurrences.

The Chinese translation of

Example

is:

Example

The 'originalStr' variable contains the string with curly braces in the example below. The regex.exec() method returns a two-dimensional array of all matching substrings. Each element of the array is an array containing two strings. The first element is the string with curly braces and the second element is the string without curly braces that we want to extract.

In the output, the user can observe that it shows the "Developers" and "JavaScript" substrings since they are both between curly braces.

<html>
<body>
   <h3>Using the <i> regular expression and exec() method </i> to get string between curly braces in JavaScript</h3>
   <div id = "demo"> </div>
   <script>
      let output = document.getElementById("demo");
      function getStringBetweenBraces() {
         var originalStr = "Hello {Developers}! Let's develop {JavaScript} code!";
         var found = [];
         var regex = /{([^}]+)}/g;
         var results = [];
         let match;
         while (match = regex.exec(originalStr)) {
            results.push(match[1]);
         }
         output.innerHTML = "The original string is " + originalStr + "<br>";
         output.innerHTML += "The substrings between curly braces are " + results + "<br>";
      }
      getStringBetweenBraces();
   </script>
</body>
</html>

Use the match() method and regular expressions to get the string between curly brackets

The match() method also returns all matching occurrences in the string in array format.

grammar

Users can use the match() method and regular expressions according to the following syntax to get the string between curly braces

let results = originalStr.match(/{([^}]+)}/g); 

In the above syntax, originalStr is a string with curly braces, and we pass the regular expression as the parameter of the match() method.

The Chinese translation of

Example

is:

Example

In the following example, the match() method returns an array of strings with curly braces. However, it does not return the string after the curly braces are removed. Users can use the subStr() or substring() method to remove curly braces from the returned results.

<html>
<body>
   <h3>Using the <i> regular expression and match() method </i> to get string between curly braces in JavaScript</h3>
   <div id = "demo"> </div>
   <script>
      let output = document.getElementById("demo");
      function getStringBetweenBraces() {
         var originalStr = "This is {sample} string! This is {original} string!";
         let results = originalStr.match(/{([^}]+)}/g); 
         output.innerHTML = "The original string is " + originalStr + "<br>";
         output.innerHTML += "The substrings between curly braces are " + results + "<br>";
      }
      getStringBetweenBraces();
   </script>
</body>
</html>

Use a for loop to get the string between curly brackets

We can also extract all substrings between the curly braces by iterating the string using a for loop. We can keep track of the starting and ending index of the curly braces. We can then extract the substring from the original string using the substring() method.

grammar

Users can use the for loop according to the following syntax to extract the substring between curly braces.

for ( ) {
   if (str[i] == "{")
   start = i;
   if (str[i] == "}") {
      end = i;
      let bracesString = str.substring(start + 1, end);
   }
}   

In the above syntax, we keep track of the starting and ending index of the curly braces and extract the string using the substring() method.

step

Step 1 - Use a for loop to traverse the string.

Step 2 - If the character with index 'I' in the string is equal to '{', store the value of the index in the start variable.

Step 3 - If the character with index 'I' in the string is equal to '}', store the value of the index in the end variable.

Step 3.1 − Use the substring() method to get the substring between the ‘start 1’ index after the ‘end’ index.

Step 3.2 - Push the resulting substring into an array.

The Chinese translation of

Example

is:

Example

In the example below, we followed the above steps to extract the string between the curly braces using a for loop. However, this method does not work for extracting strings between nested curly braces.

<html>
<body>
   <h3>Using the <i> for loop </i> to get string between curly braces in JavaScript</h3>
   <div id = "demo"> </div>
   <script>
      let output = document.getElementById("demo");
      function getStringBetweenBraces() {
         var str = "Hello {Users}! Welcome to {Website}!";
         var start = 0;
         var end = 0;
         let results = [];
         for (var i = 0; i < str.length; i++) {
            if (str[i] == "{") {
               start = i;
            }
            if (str[i] == "}") {
               end = i;
               let bracesString = str.substring(start + 1, end);
               results.push(bracesString);
            }
         }
         output.innerHTML = "The original string is " + str + "<br>";
         output.innerHTML += "The substrings between curly braces are " + results + "<br>";
      }
      getStringBetweenBraces();
   </script>
</body>
</html> 

In this tutorial we learned how to extract the string between curly braces using regular expressions. In the first method, we used the exec() method with a regular expression; in the second method, we used the match() method with a regular expression.

In the third method, we use a for loop instead of a regular expression.

The above is the detailed content of How to get the string between curly braces using JavaScript's regular expression?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete