• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Symbol.match

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

    描述

    此函数还用于标识对象是否具有正则表达式的行为。比如,假值),就表示该对象不打算用作正则表达式对象。

    Symbol.match属性的属性特性:
    writablefalse
    enumerablefalse
    configurablefalse

    示例

    禁止表达式检查

    下面代码会抛出一个TypeError

    "/bar/".startsWith(/bar/); 
    
    // Throws TypeError, 因为 /bar/ 是一个正则表达式
    // 且 Symbol.match 没有修改。
    

    但是,如果你将Symbol.match置为false,使用match属性的表达式检查会认为该象不是正则表达式对象。startsWithendsWith方法将不会抛出TypeError

    var re = /foo/;
    re[Symbol.match] = false;
    "/foo/".startsWith(re); // true
    "/baz/".endsWith(re);   // false