Utilisation des parenthèses de capture

  • Raccourci de la révision : JavaScript//Guide/Travailler_avec_les_expressions_rationnelles/Utilisation_des_parenthèses_de_capture
  • Titre de la révision : Utilisation des parenthèses de capture
  • ID de la révision : 260023
  • Créé :
  • Créateur : BenoitL
  • Version actuelle ? Non
  • Commentaire relecture

Contenu de la révision

Utilisation des parenthèses de capture

La partie d'une expression rationnelle située entre parenthèses sera capturée puis mise en mémoire. Par exemple, /a(b)c/ capture les caractères « abc » et conserve « b ». Pour récupérer les captures mises entre parenthèses, utilisez le tableau de valeurs de retour : Array {{mediawiki.external(1)}}, {{mediawiki.external(2)}}, ..., {{mediawiki.external('n')}}.

Le nombre de sous-chaînes capturées et conservées est illimité. Le tableau de retour renvoie toutes celles qui ont été trouvées. L'exemple suivant montre comment utiliser les parenthèses de capture.

Exemple 1.
Ce script utilise la méthode replace pour inverser les mots de la chaîne. Pour le texte de remplacement, on utilise $1 et $2 pour appeler les premières et secondes captures entre parenthèses.

<script type="text/javascript">
 re = /(\w+)\s(\w+)/;
 str = "Jean Dupont";
 newstr = str.replace(re, "$2, $1");
 document.write(newstr)
</script>

On obtient « Dupont, Jean ».

Exemple 2.
Dans cet exemple, RegExp.input est initialisé par l'événement Change. Dans la fonction getInfo, la méthode exec, appelée grâce à la notation (), utilise la valeur de RegExp.input comme paramètre.

<html>

<script type="text/javascript">
 function getInfo(){
   a = /(\w+)\s(\d+)/();
   window.alert(a[1] + ", votre âge est " + a[2]);
 }
</script>

Entrez votre prénom et votre âge, puis appuyez sur Entrée.

<form>
  <input type="text" name="NameAge" onchange="getInfo(this);">
</form>

</html>

{{wiki.template('PrécédentSuivant', [ "Guide JavaScript 1.5:Travailler avec les expressions rationnelles", "Guide JavaScript 1.5:Travailler avec les expressions rationnelles:Exécution de recherches globales, ignorer_la_casse, utilisation de chaînes multilignes" ])}}

{{ wiki.languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Using_Parenthesized_Substring_Matches", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Praca_z_wyra\u017ceniami_regularnymi/U\u017cycie_odpowiedniego_znaku" } ) }}

Source de la révision

<p>
</p>
<h4 name="Utilisation_des_parenth.C3.A8ses_de_capture"> Utilisation des parenthèses de capture </h4>
<p>La partie d'une expression rationnelle située entre parenthèses sera capturée puis mise en mémoire. Par exemple, <code>/a(b)c/</code> capture les caractères « abc » et conserve « b ». Pour récupérer les captures mises entre parenthèses, utilisez le tableau de valeurs de retour : <code>Array {{mediawiki.external(1)}}, {{mediawiki.external(2)}}, ..., {{mediawiki.external('n')}}</code>.
</p><p>Le nombre de sous-chaînes capturées et conservées est illimité. Le tableau de retour renvoie toutes celles qui ont été trouvées. L'exemple suivant montre comment utiliser les parenthèses de capture.
</p><p><b>Exemple 1.</b><br>
Ce script utilise la méthode <code>replace</code> pour inverser les mots de la chaîne. Pour le texte de remplacement, on utilise <code>$1</code> et <code>$2</code> pour appeler les premières et secondes captures entre parenthèses.
</p>
<pre>&lt;script type="text/javascript"&gt;
 re = /(\w+)\s(\w+)/;
 str = "Jean Dupont";
 newstr = str.replace(re, "$2, $1");
 document.write(newstr)
&lt;/script&gt;
</pre>
<p>On obtient « Dupont, Jean ».
</p><p><b>Exemple 2.</b><br>
Dans cet exemple, <code>RegExp.input</code> est initialisé par l'événement <code>Change</code>. Dans la fonction <code>getInfo</code>, la méthode <code>exec</code>, appelée grâce à la notation (), utilise la valeur de <code>RegExp.input</code> comme paramètre.
</p>
<pre>&lt;html&gt;

&lt;script type="text/javascript"&gt;
 function getInfo(){
   a = /(\w+)\s(\d+)/();
   window.alert(a[1] + ", votre âge est " + a[2]);
 }
&lt;/script&gt;

Entrez votre prénom et votre âge, puis appuyez sur Entrée.

&lt;form&gt;
  &lt;input type="text" name="NameAge" onchange="getInfo(this);"&gt;
&lt;/form&gt;

&lt;/html&gt;
</pre>
<p>{{wiki.template('PrécédentSuivant', [ "Guide JavaScript 1.5:Travailler avec les expressions rationnelles", "Guide JavaScript 1.5:Travailler avec les expressions rationnelles:Exécution de recherches globales, ignorer_la_casse, utilisation de chaînes multilignes" ])}}
</p>{{ wiki.languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Using_Parenthesized_Substring_Matches", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Praca_z_wyra\u017ceniami_regularnymi/U\u017cycie_odpowiedniego_znaku" } ) }}
Revenir à cette révision