Symbol.match
Symbol.match
指定了匹配的是正则表达式而不是字符串。
String.prototype.match()
方法会调用此函数。
描述
此函数还用于标识对象是否具有正则表达式的行为。比如,假值),就表示该对象不打算用作正则表达式对象。
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