JavaScript参考手册
符号 | Symbol
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 |
符号 | Symbol相关
JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络