La méthode test()
vérifie s'il y a une correspondance entre un texte et une expression rationnelle. Elle retourne true
en cas de succès et false
dans le cas contraire.
Syntaxe
regexObj.test(chaîne)
Paramètres
chaîne
- La chaîne de caractères qu'on souhaite comparer à l'expression rationnelle.
Valeur de retour
Un booléen : true
ou false
selon qu'une correspondance a été trouvée entre la chaîne de caractères et la chaîne passée en argument.
Description
On utilisera test()
dès qu'on souhaite savoir si une partie d'une chaîne de caractères correspond à une expression rationnelle (similaire à la méthode String.prototype.search()
). Pour obtenir plus d'informations (mais une exécution moins rapide), on utilisera la méthode exec()
(similaire à la méthode String.prototype.match()
). Comme avec exec()
(et même en combinant les deux), des appels successifs à test()
sur une même instance d'une expression rationnelle permettent de rechercher après la dernière occurence. Cette méthode est différente de search
car elle renvoie un booléen et non la position de la correspondance si elle est trouvée (ou -1
sinon).
Exemples
Utiliser test()
Voici un exemple simple qui illustre comment détecter si la chaîne coucou
est contenue au début d'une chaîne :
var str = "coucou monde !"; var résultat = /^coucou/.test(str); console.log(résultat); // true
L'exemple ci-dessous affiche un message qui dépend du succès du test :
function testinput(re, str){ var midstring; if (re.test(str)) { midstring = " contient "; } else { midstring = " ne contient pas "; } console.log(str + midstring + re.source); }
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 'RegExp.test' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'RegExp.test' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'RegExp.test' 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 à Gecko
Pour les versions antérieures à Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), l'implémentation de test()
était erronée. Quand la méthode était appelée sans aucun paramètre, elle effectuait son test par rapport à la dernière entrée (la propriété RegExp.input
) et non par rapport à la chaîne "undefined"
. Ce comportement a été corrigé ; désormais /undefined/.test()
retourne bien true
au lieu d'une erreur.
Voir aussi
- Le chapitre sur les expressions rationnelles du guide JavaScript
RegExp