Symbol.match
Symbol.match
该Symbol.match
公知的符号指定针对一个字符串的正则表达式的匹配。该功能由该String.prototype.match()
方法调用。
|Symbol.match
属性的属性特性: |
|:----|
| Writable | no |
| Enumerable | no |
| Configurable | no |
描述
该函数还用于识别对象是否具有正则表达式的行为。例如,方法String.prototype.startsWith()
,String.prototype.endsWith()
并String.prototype.includes()
检查他们的第一个参数是否是一个正则表达式,并会抛出一个,TypeError
如果他们是。现在,如果match
符号设置为false
(或Falsy值),则表示该对象不打算用作正则表达式对象。
示例
禁止表达式检查
下面代码会抛出一个 TypeError:
'/bar/'.startsWith(/bar/
// Throws TypeError, as /bar/ is a regular expression
// and Symbol.match is not modified.
但是,如果你将 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)The definition of 'Symbol.match' in that specification. | Standard | Initial definition. |
ECMAScript Latest Draft (ECMA-262)The definition of 'Symbol.match' in that specification. | Living Standard | |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 50 | (Yes) | 40 (40) | No support | No support | No support |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | No support | No support | (Yes) | 40.0 (40) | No support | No support | No support |