Symbol.match - JavaScript 编辑
Symbol.match
指定了匹配的是正则表达式而不是字符串。String.prototype.match()
方法会调用此函数。
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.
描述
此函数还用于标识对象是否具有正则表达式的行为。比如, String.prototype.startsWith()
,String.prototype.endsWith()
和 String.prototype.includes()
这些方法会检查其第一个参数是否是正则表达式,是正则表达式就抛出一个TypeError
。现在,如果 match
symbol 设置为 false
(或者一个 假值),就表示该对象不打算用作正则表达式对象。
Symbol.match 属性的属性特性: | |
---|---|
writable | false |
enumerable | false |
configurable | false |
示例
禁止表达式检查
下面代码会抛出一个 TypeError
:
"/bar/".startsWith(/bar/);
// Throws TypeError, 因为 /bar/ 是一个正则表达式
// 且 Symbol.match 没有修改。
但是,如果你将 Symbol.match
置为 false
,使用 match
属性的表达式检查会认为该象不是正则表达式对象。startsWith
和 endsWith
方法将不会抛出 TypeError
。
var re = /foo/;
re[Symbol.match] = false;
"/foo/".startsWith(re); // true
"/baz/".endsWith(re); // false
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Symbol.match | Standard | Initial definition. |
ECMAScript (ECMA-262) Symbol.match | Living Standard |
浏览器支持
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.相关链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论