Symbol.match well-known symbol specifies the matching of a regular expression against a string. This function is called by the
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
This function is also used to identify if objects have the behavior of regular expressions. For example, the methods
String.prototype.includes(), check if their first argument is a regular expression and will throw a
TypeError if they are. Now, if the
match symbol is set to
false (or a Falsy value), it indicates that the object is not intended to be used as a regular expression object.
|Property attributes of
The following code will throw a
'/bar/'.startsWith(/bar/); // Throws TypeError, as /bar/ is a regular expression // and Symbol.match is not modified.
However, if you set
isRegExp check (that uses the
match property) will indicate that the object is not a regular expression object. The methods
endsWith won't throw a
TypeError as a consequence.
var re = /foo/; re[Symbol.match] = false; '/foo/'.startsWith(re); // true '/baz/'.endsWith(re); // false
BCD tables only load in the browser