JavaScript - Symbol.match 属性



名为 Symbol.match 的 JavaScript 符号用作方法的键,该方法确定对象在正则表达式匹配操作中的行为。它允许您自定义对象匹配的方式,例如它们如何响应对 String.prototype.match() 方法的调用。

使用此符号,程序员可以为对象构建自定义匹配逻辑,这超出了内置 JavaScript 类型行为的范围。开发人员可以使用此功能来扩展正则表达式匹配对各种数据类型和结构的适应性。

语法

以下是 JavaScript Symbol.match 属性的语法:

regexp[Symbol.match] = false;

参数

此属性不接受任何参数。

返回值

这将返回字符串匹配的布尔值。如果找到匹配项,则返回 true,否则返回 false。

示例

示例 1

让我们看下面的例子,我们将自定义匹配行为。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {
            [Symbol.match](a) {
               return a.indexOf('Tp') !== -1 ? 'true' : false;
            }
         };
         document.write('TutorialsPoint Tp'.match(x));
      </script>
   </body>
</html>

如果执行上述程序,它将显示网页上的文本。

示例 2

考虑另一种情况,我们将使用 Symbol.match 为对象定义匹配行为。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         let x = {
            [Symbol.match](a) {
               return 'TutorialsPoint'.indexOf(a) !== -1;
            }
         };
         document.write('M'.match(x), " < br > ");
         document.write('P'.match(x));
      </script>
   </body>
</html>

执行上述脚本后,它将显示网页上的文本。

示例 3

在下面的示例中,我们将使用 Symbol.match 属性仅匹配字母。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {
            [Symbol.match]: function(string) {
               return string.match(/[a-zA-Z]+/g);
            }
         };
         const a = 'T123U456T6272O673R262I522X'.match(x);
         document.write(a);
      </script>
   </body>
</html>

当我们执行脚本时,它将显示网页上的文本。

示例 4

下面的示例将使用 Symbol.match 来匹配特定模式。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {
            [Symbol.match]: function(string) {
               return string.match(/(\d+)/g);
            }
         };
         const a = 'T1U2T3O1R4I3X'.match(x);
         document.write(a);
      </script>
   </body>
</html>

执行上述脚本后,将弹出输出窗口,在网页上显示数字。

广告