Maison  >  Article  >  interface Web  >  Comment obtenir la chaîne entre accolades à l'aide de l'expression régulière de JavaScript ?

Comment obtenir la chaîne entre accolades à l'aide de l'expression régulière de JavaScript ?

PHPz
PHPzavant
2023-08-23 08:41:071648parcourir

Comment obtenir la chaîne entre accolades à laide de lexpression régulière de JavaScript ?

Nous pouvons créer une expression régulière afin qu'elle puisse trouver toutes les sous-chaînes entre accolades. Après cela, nous pouvons utiliser la méthode exec() ou match() pour extraire la sous-chaîne correspondante.

Dans ce tutoriel, nous apprendrons à utiliser des expressions régulières en JavaScript pour placer la chaîne entre accolades. Par exemple, si nous avons une chaîne du type « Ceci est une {chaîne} avec des accolades {bouclées}, nous devons extraire toutes les sous-chaînes qui résident entre les accolades.

Utilisez la méthode exec() avec des expressions régulières pour obtenir la chaîne entre accolades

La méthode exec() est généralement utilisée avec des expressions régulières pour trouver des sous-chaînes correspondantes. Il renvoie tous les résultats correspondants au format tableau, ou null si aucune correspondance n'est trouvée.

Grammaire

Les utilisateurs peuvent suivre la syntaxe ci-dessous pour utiliser la méthode exec() avec l'expression régulière pour obtenir toutes les sous-chaînes entre les accolades

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

Dans la syntaxe ci-dessus, nous avons créé une expression régulière pour trouver la sous-chaîne entre accolades. Nous parcourons ensuite le tableau matches et obtenons toutes les occurrences correspondantes.

La traduction chinoise de

Exemple

est :

Exemple

La variable 'originalStr' contient la chaîne avec des accolades dans l'exemple ci-dessous. La méthode regex.exec() renvoie un tableau bidimensionnel de toutes les sous-chaînes correspondantes. Chaque élément du tableau est un tableau contenant deux chaînes. Le premier élément est la chaîne avec des accolades et le deuxième élément est la chaîne sans accolades que nous voulons extraire.

Dans la sortie, l'utilisateur peut observer qu'il affiche les sous-chaînes "Développeurs" et "JavaScript" puisqu'elles sont toutes deux entre accolades.

<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>

Utilisez la méthode match() avec des expressions régulières pour obtenir la chaîne entre accolades

La méthode

match() renvoie également toutes les occurrences correspondantes dans la chaîne au format tableau.

Grammaire

Les utilisateurs peuvent utiliser la méthode match() et les expressions régulières selon la syntaxe suivante pour obtenir la chaîne entre accolades

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

Dans la syntaxe ci-dessus, originalStr est une chaîne avec des accolades, et nous passons l'expression régulière comme paramètre de la méthode match().

La traduction chinoise de

Exemple

est :

Exemple

Dans l'exemple ci-dessous, la méthode match() renvoie un tableau de chaînes avec des accolades. Cependant, il ne renvoie pas la chaîne après avoir supprimé les accolades. Les utilisateurs peuvent utiliser la méthode subStr() ou substring() pour supprimer les accolades des résultats renvoyés.

<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>

Utilisez une boucle for pour placer la chaîne entre accolades

Nous pouvons également extraire toutes les sous-chaînes entre les accolades en itérant la chaîne à l'aide d'une boucle for. Nous pouvons garder une trace de l’index de début et de fin des accolades. Nous pouvons ensuite extraire la sous-chaîne de la chaîne d'origine en utilisant la méthode substring().

Grammaire

Les utilisateurs peuvent utiliser la boucle for selon la syntaxe suivante pour extraire la sous-chaîne entre accolades.

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

Dans la syntaxe ci-dessus, nous gardons une trace de l'index de début et de fin des accolades et extrayons la chaîne à l'aide de la méthode substring().

Étapes

Étape 1 - Utilisez une boucle for pour parcourir la chaîne.

Étape 2 - Si le caractère avec l'index 'I' dans la chaîne est égal à '{', stockez la valeur de l'index dans la variable de départ.

Étape 3 - Si le caractère avec l'index 'I' dans la chaîne est égal à '}', stockez la valeur de l'index dans la variable de fin.

Étape 3.1 - Utilisez la méthode substring() pour obtenir la sous-chaîne entre l'index « start + 1 » après l'index « end ».

Étape 3.2 - Poussez la sous-chaîne résultante dans un tableau.

La traduction chinoise de

Exemple

est :

Exemple

Dans l'exemple ci-dessous, nous avons suivi les étapes ci-dessus pour extraire la chaîne entre accolades à l'aide d'une boucle for. Cependant, cette méthode ne fonctionne pas pour extraire des chaînes entre accolades imbriquées.

<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> 

Dans ce tutoriel, nous avons appris à extraire la chaîne entre accolades à l'aide d'expressions régulières. Dans la première méthode, nous avons utilisé la méthode exec() avec une expression régulière ; dans la deuxième méthode, nous avons utilisé la méthode match() avec une expression régulière.

Dans la troisième méthode, nous avons utilisé une boucle for au lieu d'expressions régulières.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer