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
