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>

執行上述指令碼後,將彈出輸出視窗,在網頁上顯示數字。

廣告