`Symbol.match` 指定了匹配的是正则表达式而不是字符串。`String.prototype.match()` 方法会调用此函数。

`Symbol.match` 属性的属性特性：
writable | false
enumerable | false
configurable | false

## 描述

此函数还用于标识对象是否具有正则表达式的行为。比如， `String.prototype.startsWith()`，`String.prototype.endsWith()` 和 `String.prototype.includes()` 这些方法会检查其第一个参数是否是正则表达式，是正则表达式就抛出一个`TypeError`。现在，如果 `match` symbol 设置为 `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

## 规范

Specification | Status | Comment
--- | --- | ---
ECMAScript 2015 (6th Edition, ECMA-262) Symbol.match | Standard | Initial definition.
ECMAScript Latest Draft (ECMA-262) Symbol.match | Draft |

## 浏览器支持

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

- Desktop
- Mobile

Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari
--- | --- | --- | --- | --- | ---
Basic support | 50 | 40 (40) | 未实现 | 未实现 | 未实现

Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile
--- | --- | --- | --- | --- | --- | ---
Basic support | 未实现 | 未实现 | 40.0 (40) | 未实现 | 未实现 | 未实现

## 相关链接

- `Symbol.replace`
- `Symbol.search`
- `Symbol.split`
- `RegExp.prototype[@@match]()`