Symbol.match well-known symbol specifies the matching of a regular expression against a string. This function is called by the
|Property attributes of
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 except
undefined), it indicates that the object is not intended to be used as a regular expression object.
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
false, the object will be considered as not a regular expression object. The methods
endsWith won't throw a
TypeError as a consequence.
const re = /foo/; re[Symbol.match] = false; "/foo/".startsWith(re); // true "/baz/".endsWith(re); // false
|ECMAScript Language Specification |
BCD tables only load in the browser