[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/String/match [Back]  [Original]

String.prototype.match() - 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

String.prototype.match()

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.

La mthode match() permet d'obtenir le tableau des correspondances entre la chane courante et une expression rationnelle.

Dans cet article

Exemple interactif

const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";
const regex = /[A-Z]/g;
const found = paragraph.match(regex);

console.log(found);
// Expected output: Array ["T", "I"]

Syntaxe

js
str.match(regexp);

Paramtres

regexp

Un objet reprsentant une expression rationnelle. Si ce n'est pas un objet de type RegExp, celui-ci sera converti en un objet RegExp grce new RegExp(regexp). Si aucun paramtre n'est utilis, cela renverra un tableau contenant un lment tant la chane vide : [""].

Valeur de retour

Un tableau (Array) contenant les correspondances et les groupes capturs avec les parenthses ou null s'il n'y a pas de correspondance. Le contenu de ce tableau dpend de l'utilisation du marqueur pour la recherche globale g :

  • Si le marqueur g est utilis, tous les rsultats correspondants l'expression rationnelle complte seront renvoys mais les groupes capturants ne seront pas renvoys.
  • Si le marqueur g n'est pas utilis, seule la premire correspondance et ses groupes capturants seront renvoys. Dans ce cas, l'lment renvoy aura des proprits supplmentaires listes ci-aprs.

Proprits supplmentaires

Comme indiqu ci-avant, les rsultats peuvent contenir certaines proprits supplmentaires :

  • groups : un tableau de groupes capturants nomms ou undefined si aucun groupe capturant n'a t dfini. Voir la page sur les groupes et les intervalles pour plus d'informations.
  • index : l'indice de la chane de caractres o a t trouve la correspondance.
  • input : une copie de la chane sur laquelle a t effectue la recherche.

Description

Si l'expression n'utilise pas le drapeau (flag) g, le rsultat obtenu sera le mme qu'avec RegExp.exec().

Voir aussi : les mthodes de RegExp

  • Si on souhaite savoir s'il existe des correspondances entre une chane de caractres et une expression rationnelle RegExp, on pourra utiliser RegExp.test().
  • Si on ne souhaite obtenir que la premire correspondance, on pourra plutt utiliser RegExp.exec() la place.
  • Si on souhaite obtenir les groupes correspondants et que le drapeau global est activ, il faudra utiliser RegExp.exec() la place.

Exemples

Utiliser match()

Dans l'exemple suivant, on utilise match() afin de trouver la chane 'Chapitre' suivie par un ou plusieurs chiffres spars par des points. L'expression utilise active le drapeau i afin que la casse ne soit pas prise en compte.

js
var str = "Pour plus d'informations, voir le chapitre 3.4.5.1";
var re = /(chapitre \d+(\.\d)*)/i;
var trouv = str.match(re);

console.log(trouv);

// logs ['chapitre 3.4.5.1', 'chapitre 3.4.5.1', '.1']

// 'chapitre 3.4.5.1' est la premire correspondance
// 'chapitre 3.4.5.1' est la valeur garde en mmoire par
// `(chapitre \d+(\.\d)*)`.
// '.1' est la valeur garde en mmoire par `(\.\d)`.

Utiliser les drapeaux g (global) et i (ignorer la casse) avec match()

Dans cet exemple, on illustre comment utiliser des drapeaux avec l'expression rationnelle qui est un argument de match(). Chaque lettre de A E et de a e est renvoye, chacune dans un lment du tableau de rsultat.

js
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var tableau_correspondances = str.match(regexp);

console.log(tableau_correspondances);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

Utiliser un paramtre qui n'est pas une RegExp

Lorsque le paramtre pass la fonction est une chane de caractres ou un nombre, il est converti de faon implicite en un objet RegExp grce new RegExp(obj). Si c'est un nombre positif avec le signe +, la mthode RegExp() ignorera ce signe.

js
var str1 = "NaN signifie : qui n'est pas un nombre.";
var str2 = "Mon pre a 65 ans.";
str1.match("nombre"); // "nombre" est une chane, renvoie ["nombre"]
str1.match(NaN); // NaN est de type number, renvoie ["NaN"]
str2.match(65); // Renvoie ["65"]
str2.match(+65); // Renvoie galement ["65"]

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-string.prototype.match

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page