--- title: Symbol.match slug: Web/JavaScript/Reference/Objets_globaux/Symbol/match tags: - ECMAScript 2015 - JavaScript - Propriété - Reference - Symbol translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/match ---
Le symbole Symbol.match
définit la correspondance d'une expression rationnelle par rapport à une chaîne de caractères. Cette fonction est appelée par la méthode {{jsxref("String.prototype.match()")}}.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Cette fonction est également utilisée pour identifier les objets qui jouent un rôle avec les expressions rationnelles. Ainsi, les méthodes {{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}} et {{jsxref("String.prototype.includes()")}} vérifient si leur premier argument est une expression rationnelle et lèvent une exception {{jsxref("TypeError")}} si c'est le cas. Si le symbole match
est modifié et vaut une valeur false
(ou équivalente), cela indique que l'objet ne doit pas être utilisé comme une expression rationnelle.
{{js_property_attributes(0,0,0)}}
Le code suivant renverra une exception {{jsxref("TypeError")}} :
"/truc/".startsWith(/truc/); // lève une TypeError car /truc/ // est une expression rationnelle // et que Symbol.match n'a pas été modifié.
Cependant, si Symbol.match
vaut false
, cette vérification isRegExp
indiquera que l'objet à prendre en compte n'est pas une expression rationnelle. Les méthodes startsWith
et endsWith
ne déclencheront donc pas d'exception TypeError
.
var re = /toto/; re[Symbol.match] = false; "/toto/".startsWith(re); // true "/truc/".endsWith(re); // false
Spécification | État | Commentaires |
---|---|---|
{{SpecName('ES2015', '#sec-symbol.match', 'Symbol.match')}} | {{Spec2('ES2015')}} | Définition initiale. |
{{SpecName('ESDraft', '#sec-symbol.match', 'Symbol.match')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Symbol.match")}}