正規表達式測試器

在瀏覽器本地即時測試 JavaScript 正規表達式。

表達式
旗標
測試文字
高亮符合結果
輸入表達式即可開始測試。

你的表達式和文字會在瀏覽器本地測試,不會上傳到 BroBroGo。

常見問題

把文字貼到這裡安全嗎?

安全。比對完全在你的瀏覽器內進行,不會傳送到 BroBroGo。

g/i/m/s 這幾個旗標分別是什麼意思?

g 表示尋找所有符合項,而不只是第一個。i 表示忽略大小寫。m 讓 ^ 和 $ 符合每一行的開頭結尾,而不只是整個字串。s 讓 . 也能符合換行符。

為什麼提示我的表達式跑得太久?

某些寫法會觸發災難性回溯——正規表達式引擎要嘗試指數級數量的組合才會放棄,可能會卡死整個瀏覽器分頁。這個工具會在 2 秒後強制取消過慢比對,所以頁面本身不會被卡住。可以試著簡化巢狀重複的寫法,例如 (a+)+。

JavaScript 正規表達式測試與運作機制

正規表達式(Regular Expression)是用於定義字元模式的工具,廣泛應用於文字搜尋、資料驗證及特定格式擷取。本工具專為測試 JavaScript 語法的正規表達式而設,讓使用者在瀏覽器中即時輸入模式與測試文字,觀察比對結果。

在 JavaScript 中,正規表達式由「表達式」與「旗標」組成。本工具提供直觀的介面,讓使用者即時檢視每一個符合項(Match)以及擷取群組(Capture Group)的劃分狀況,協助排查比對邏輯中的錯誤。

旗標設定及其對比對行為的影響

旗標會直接改變正規表達式引擎的搜尋行為。本工具支援以下四種常見的 JavaScript 旗標,使用者可透過勾選進行組合:

  • g (全域):尋找所有符合項,而不只是第一個。若未勾選此旗標,工具將僅返回第一個符合的結果。
  • i (忽略大小寫):忽略英文字母的大小寫差異。
  • m (多行模式):改變錨點字元 ^$ 的行為,使其分別符合每一行的開頭與結尾,而非僅符合整個輸入字串的開頭與結尾。
  • s (讓. 也能符合換行符):預設情況下,萬用字元 . 不會符合換行符號,啟用此旗標後則可符合包含換行符在內的任意字元。

測試輸入與輸出結果解讀

使用者需在工具中提供以下輸入內容:

  1. 表達式:輸入要測試的正規表達式模式,例如預設範例 \d+
  2. 旗標:依需求勾選 g、i、m 或 s。
  3. 測試文字:輸入或貼上用於測試的文本內容。

輸入後,工具會即時呈現以下輸出資訊:

  • 高亮符合結果:在測試文字中直接以視覺化高亮標示出所有符合的區段。
  • 符合清單:列出所有比對成功的詳細結果。若表達式中包含括號定義的擷取群組,清單中會以「第 {n} 組」標示出各個群組所擷取的具體子字串。
  • 符合數:{count}:顯示目前找到的符合項總數。
  • 字元:顯示測試文字的總字元數。

運作限制與異常處理機制

為了確保瀏覽器運作穩定,本工具針對極端情況設有明確的處理規則:

  • 語法錯誤:若輸入的正規表達式語法不合法,工具會顯示「不是合法的正規表達式。」。
  • 無符合項:若文字中找不到任何匹配內容,會顯示「沒有符合項。」。
  • 數量限制:在啟用全域(g)旗標時,工具最多僅比對 1,000 個符合項,且最多僅顯示 100 個符合結果卡片。當超過顯示上限時,會提示「只顯示前 {max} 個。」。
  • 效能保護:若正規表達式撰寫不當(例如巢狀重複結構),可能會導致「災難性回溯」(Catastrophic Backtracking),使瀏覽器卡死。本工具設有 2 秒的執行時間限制,一旦比對超時,將自動中止並顯示「這個表達式跑得太久了——可能觸發了災難性回溯,試著簡化一下。」。
  • 清空功能:點擊「清空」按鈕可清除所有輸入與輸出,並顯示「已清空。」。

瀏覽器本地處理與隱私說明

本工具的運作完全基於用戶端瀏覽器。你輸入的正規表達式、旗標以及測試文字,皆直接在你的瀏覽器本地進行運算與比對,過程中沒有任何資料會上傳到 BroBroGo 伺服器。

常見問題

把文字貼到這裡安全嗎?

安全。比對完全在你的瀏覽器內進行,不會傳送到 BroBroGo。

g/i/m/s 這幾個旗標分別是什麼意思?

g 表示尋找所有符合項,而不只是第一個。i 表示忽略大小寫。m 讓 ^$ 符合每一行的開頭結尾,而不只是整個字串。s 讓 . 也能符合換行符。

為什麼提示我的表達式跑得太久?

某些寫法會觸發災難性回溯——正規表達式引擎要嘗試指數級數量的組合才會放棄,可能會卡死整個瀏覽器分頁。這個工具會在 2 秒後強制取消過慢比對,所以頁面本身不會被卡住。可以試著簡化巢狀重複的寫法,例如 (a+)+