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 : 260025
  • Créé :
  • Créateur : BenoitL
  • Version actuelle ? Non
  • Commentaire +noinclude

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.
Note : dans la fonction getInfo, la méthode exec est appelée grâce à la notation (), qui fonctionne dans Firefox mais dans peu d'autres navigateurs.

<html>

<script type="text/javascript">
 function getInfo(champ){
   var a = /(\w+)\s(\d+)/(champ.value);
   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", "ja": "ja/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

<div class="noinclude"></div>
<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>
Note : dans la fonction <code>getInfo</code>, la méthode <code>exec</code> est appelée grâce à la notation (), qui fonctionne dans Firefox mais dans peu d'autres navigateurs.
</p>
<pre>&lt;html&gt;

&lt;script type="text/javascript"&gt;
 function getInfo(champ){
   var a = /(\w+)\s(\d+)/(champ.value);
   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>
<div class="noinclude">
<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>
</div>
{{ wiki.languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Using_Parenthesized_Substring_Matches", "ja": "ja/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