Symbol.match - JavaScript 编辑
The Symbol.match
well-known symbol specifies the matching of a regular expression against a string. This function is called by the String.prototype.match()
method.
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.
Description
This function is also used to identify if objects have the behavior of regular expressions. For example, the methods String.prototype.startsWith()
, String.prototype.endsWith()
and 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 Symbol.match | |
---|---|
Writable | no |
Enumerable | no |
Configurable | no |
Examples
Disabling the isRegExp check
The following code will throw a TypeError
:
'/bar/'.startsWith(/bar/);
// Throws TypeError, as /bar/ is a regular expression
// and Symbol.match is not modified.
However, if you set Symbol.match
to false
, the isRegExp
check (that uses the match
property) will indicate that the object is not a regular expression object. The methods startsWith
and endsWith
won't throw a TypeError
as a consequence.
var re = /foo/;
re[Symbol.match] = false;
'/foo/'.startsWith(re); // true
'/baz/'.endsWith(re); // false
Specifications
Specification |
---|
ECMAScript (ECMA-262) The definition of 'Symbol.match' in that specification. |
Browser compatibility
BCD tables only load in the browser
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论