[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Regular_expressions/Disjunction [Back]  [Original]

Disjonction : | - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Disjonction : |

Baseline
Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Une disjonction (disjunction en anglais) dfinit plusieurs alternatives. Toute alternative correspondant l'entre entrane la correspondance de l'ensemble de la disjonction.

Dans cet article

Syntaxe

regex
alternative1|alternative2
alternative1|alternative2|alternative3|

Paramtres

alternativeN

Un motif alternatif, compos d'une squence de atomes et d'assertions. La correspondance russie d'une alternative entrane la correspondance de l'ensemble de la disjonction.

Description

L'oprateur | des expressions rationnelles spare deux ou plusieurs alternatives. Le motif essaie d'abord de faire correspondre la premire alternative ; si cela choue, il essaie de faire correspondre la deuxime, et ainsi de suite. Par exemple, ce qui suit correspond "a" au lieu de "ab", car la premire alternative correspond dj avec succs :

js
/a|ab/.exec("abc"); // ['a']

L'oprateur | a la plus basse priorit dans une expression rationnelle. Si vous souhaitez utiliser une disjonction comme partie d'un motif plus grand, vous devez la grouper.

Lorsqu'une disjonction groupe a d'autres expressions aprs elle, la correspondance commence par la slection de la premire alternative et la tentative de correspondre au reste de l'expression rationnelle. Si le reste de l'expression rationnelle ne correspond pas, le moteur essaie plutt l'alternative suivante. Par exemple,

js
/(?:(a)|(ab))(?:(c)|(bc))/.exec("abc"); // ['abc', 'a', undefined, undefined, 'bc']
// Pas ['abc', undefined, 'ab', 'c', undefined]

Cela s'explique par le fait qu'en choisissant a dans la premire alternative, vous pouvez choisir bc dans la deuxime alternative et obtenir une correspondance russie. Ce processus s'appelle le retour sur trace, car le moteur dpasse d'abord la disjonction puis y revient lorsque la correspondance suivante choue.

Notez aussi que toutes les parenthses de capture l'intrieur d'une alternative qui ne correspond pas produisent undefined dans le tableau obtenu.

Une alternative peut tre vide, auquel cas elle correspond une squence vide (autrement dit, elle correspond toujours).

Les alternatives sont toujours essayes de gauche droite, quelle que soit la direction de la correspondance (qui s'inverse dans une prcdence).

Exemples

Faire correspondre les extensions de fichiers

L'exemple suivant correspond aux extensions de fichiers et utilise le mme code que l'article sur les assertions de limite d'entre :

js
function estUneImage(nomFichier) {
  return /\.(?:png|jpe?g|webp|avif|gif)$/i.test(nomFichier);
}

estUneImage("image.png"); // true
estUneImage("image.jpg"); // true
estUneImage("image.pdf"); // false

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# prod-Disjunction

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page