La méthode match()
permet d'obtenir le tableau des correspondances entre la chaîne courante et une expression rationnelle.
Syntaxe
str.match(regexp)
Paramètres
regexp
- Un objet représentant une expression rationnelle. Si ce n'est pas un objet de type
RegExp
, celui-ci sera converti en un objetRegExp
grâce ànew RegExp(regexp)
.
Valeur de retour
Un tableau (Array
) contenant les correspondances et les groupes capturés avec les parenthèses, ou null
s'il n'y a pas de correspondance.
Description
Si l'expression n'utilise pas le drapeau (flag) g
, le résultat obtenu sera le même qu'avec RegExp.exec()
. L'objet Array
résultant possède une propriété input
supplémentaire indiquant la chaîne sur laquelle l'expression a été appliquée. Il possède également la propriété index
représentant l'indice de la correspondance dans la chaîne.
Si l'expression rationnelle utilise le drapeau g
, la méthode renvoie un Array
contenant l'ensemble des sous-chaînes correspondantes. S'il n'y a aucune correspondance, la méthode renverra null
.
Voir aussi : les méthodes de RegExp
- Si on souhaite savoir s'il existe des correspondances entre une chaîne de caractères et une expression rationnelle
RegExp
, on pourra utilisersearch()
. - Si on ne souhaite obtenir que la première correspondance, on pourra plutôt 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 chaîne 'Chapitre'
suivie par un ou plusieurs chiffres séparés par des points. L'expression utilisée active le drapeau i
afin que la casse ne soit pas prise en compte.
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 première correspondance // 'chapitre 3.4.5.1' est la valeur gardée en mémoire par // `(chapitre \d+(\.\d)*)`. // '.1' est la valeur gardée en mémoire 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 renvoyée, chacune dans un élément du tableau de résultat.
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']
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Définition initiale. Implémentée avec JavaScript 1.2. |
ECMAScript 5.1 (ECMA-262) La définition de 'String.prototype.match' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'String.prototype.match' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'String.prototype.match' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Notes spécifiques à Firefox/Gecko
- À partir de Gecko 27 (Firefox 27 / Thunderbird 27 / SeaMonkey 2.24), cette méthode a été ajustée afin d'être conforme à ECMAScript. Lorsque
match()
est appelée sur une expression rationnelle globale, la propriétéRegExp.lastIndex
de l'objet sera redéfini à0
(bug 501739). - À partir de Gecko 39 (Firefox 39 / Thunderbird 39 / SeaMonkey 2.36), les arguments non standards pour les drapeaux sont dépréciés et déclenchent des avertissements dans la console (bug 1142351). Cette propriété est propre à Gecko et sera retirée à l'avenir.
- À partir de Gecko 47 (Firefox 47 / Thunderbird 47 / SeaMonkey 2.44), l'argument non-standard
flags
n'est plus supporté dans les versions hors release et sera bientôt retiré définitivement (bug 1245801). - À partir de Gecko 49 (Firefox 49 / Thunderbird 49 / SeaMonkey 2.46), l'argument non-standard
flags
n'est plus pris en charge (bug 1108382).