⊗jsSpREHHy 110 of 294 menu

Le trait d'union dans les ensembles des expressions régulières JavaScript

Le trait d'union est aussi un caractère spécial à l'intérieur de [ ] (mais pas à l'extérieur). Si vous avez besoin du trait d'union lui-même comme caractère - placez-le à un endroit où il ne sera pas interprété comme un séparateur d'intervalle.

Pourquoi c'est important : vous pouvez créer un intervalle de caractères sans vous en rendre compte. Par exemple, comme ceci - '[:-@]' - vous pensez que vous sélectionnez le deux-points, le trait d'union et l'arobase, alors qu'en réalité, vous obtenez l'intervalle de caractères entre : et @. Cet intervalle inclut les caractères suivants : ? < = > : ;

D'où viennent-ils ? De la table ASCII - le deux-points a un numéro inférieur à celui de l'arobase - ce qui forme un intervalle. C'est-à-dire que tous les intervalles sont déterminés selon la table ASCII (on peut s'en servir si on le souhaite).

Comment y remédier : placez le trait d'union à un endroit où il ne sera certainement pas interprété comme un caractère d'intervalle, par exemple, au début ou à la fin (c'est-à-dire après [ ou avant ]).

On peut aussi échapper le trait d'union - alors il représentera lui-même, indépendamment de sa position. Par exemple, au lieu de [:-@], écrire [:\-@] - et il n'y aura plus d'intervalle, mais trois caractères - le deux-points, le trait d'union et l'arobase @.

Exemple

Dans l'exemple suivant, le motif de recherche est : chiffre 1, puis lettre de 'a' à 'z', puis chiffre 2 :

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a-z]2/g, '!');

En conséquence, la variable contiendra :

'! 1-2 ! !'

Exemple

Échappons maintenant le trait d'union. En conséquence, le motif de recherche est : chiffre 1, puis lettre 'a', ou trait d'union, ou lettre 'z', puis chiffre 2 :

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a\-z]2/g, '!');

En conséquence, la variable contiendra :

'! ! 1c2 !'

Exemple

On peut simplement déplacer le trait d'union sans l'échapper :

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[az-]2/g, '!');

En conséquence, la variable contiendra :

'! ! 1c2 !'

Exemple

Dans l'exemple suivant, le motif de recherche est : premier caractère - lettres minuscules ou trait d'union '-', puis deux lettres 'x' :

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-z-]xx/g, '!');

En conséquence, la variable contiendra :

'! Axx ! @xx'

Exemple

Dans l'exemple suivant, le motif de recherche est : premier caractère - lettres minuscules, lettres majuscules ou trait d'union '-', puis deux lettres 'x' :

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-zA-Z-]xx/g, '!');

En conséquence, la variable contiendra :

'! ! ! @xx'

Exemple

On peut placer le trait d'union entre deux intervalles - là, il ne créera certainement pas un autre intervalle :

let str = 'axx 9xx -xx @xx'; let res = str.replace(/[a-z-0-9]xx/g, '!');

En conséquence, la variable contiendra :

'! ! ! @xx'

Problèmes pratiques

Soit la chaîne :

let str = 'xaz xBz xcz x-z x@z';

Trouvez toutes les chaînes selon le motif suivant : lettre 'x', lettre majuscule ou minuscule ou trait d'union, lettre 'z'.

Soit la chaîne :

let str = 'xaz x$z x-z xcz x+z x%z x*z';

Trouvez toutes les chaînes selon le motif suivant : lettre 'x', puis soit le dollar, soit le trait d'union, soit le plus, puis lettre 'z'.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser