Symbol.match
Symbol.match
静态数据属性表示 众所周知的符号 Symbol.match
。 String.prototype.match()
方法在其第一个参数上查找此符号,以获取用于将输入字符串与当前对象匹配的方法。此符号还用于确定是否应该将对象 视为正则表达式。
有关更多信息,请参见 RegExp.prototype[Symbol.match]()
和 String.prototype.match()
。
试一试
值
众所周知的符号 Symbol.match
。
Symbol.match 的属性属性 |
|
---|---|
可写 | 否 |
可枚举 | 否 |
可配置 | 否 |
描述
此函数还用于标识 对象是否具有正则表达式的行为。例如,方法 String.prototype.startsWith()
、String.prototype.endsWith()
和 String.prototype.includes()
检查它们第一个参数是否为正则表达式,如果它们是,则会抛出 TypeError
。现在,如果 match
符号设置为 false
(或 假值,除了 undefined
),则表示该对象不打算用作正则表达式对象。
示例
将 RegExp 标记为非正则表达式
以下代码将抛出 TypeError
js
"/bar/".startsWith(/bar/);
// Throws TypeError, as /bar/ is a regular expression
// and Symbol.match is not modified.
但是,如果您将 Symbol.match
设置为 false
,则该对象将被视为 非正则表达式对象。因此,startsWith
和 endsWith
方法不会抛出 TypeError
。
js
const re = /foo/;
re[Symbol.match] = false;
"/foo/".startsWith(re); // true
"/baz/".endsWith(re); // false
规范
规范 |
---|
ECMAScript 语言规范 # sec-symbol.match |
浏览器兼容性
BCD 表仅在浏览器中加载