正規表示式測試器即時 JavaScript RegExp 除錯器
zh-TW

AppHelp

測試並除錯 JavaScript 正規表示式

輸入時立即查看符合內容,檢查索引與擷取群組,驗證正反案例,預覽取代結果,並複製安全跳脫的 JavaScript 程式碼。

JavaScript 正規表示式工作區

基於瀏覽器 JavaScript RegExp 引擎,提供即時標示、測試、取代與程式碼產生。

本機執行
旗標

即時符合預覽

/(?<user>[A-Z0-9._%+-]+)@(?<domain>[A-Z0-9.-]+\.[A-Z]{2,})/gi

2 個符合有效
Contact ada@example.com or support@apphelp.net. Invalid: person@example.
符合 1[8, 23) · 15 個字元
ada@example.com
$1ada
$2example.com
userada
domainexample.com
符合 2[27, 46) · 19 個字元
support@apphelp.net
$1support
$2apphelp.net
usersupport
domainapphelp.net
.

除換行外的任意字元

\d / \w / \s

數字、單字與空白字元類別

* + ?

零次以上、一次以上、可選

{2,5}

重複 2 到 5 次

^ $

開頭與結尾錨點

(...) / (?:...)

擷取與非擷取群組

(?<name>...)

具名擷取群組

(?=...) / (?!...)

正向與負向前瞻

常見任務

  • 正規表示式測試器
  • 正規表示式線上測試
  • javascript regex 測試
  • regex 除錯器
  • 正規表示式符合標示
  • 正規表示式取代測試
  • regex 擷取群組
  • regex 單元測試
  • regex101 替代
  • 免費 regex 工具

快速答案

輸入 JavaScript 正規表示式模式、選擇明確旗標並貼上測試文字。AppHelp 使用瀏覽器 RegExp 引擎編譯模式,標示每個 JavaScript 符合項目,顯示索引範圍與擷取群組,預覽取代標記,執行逐行正反案例,並產生安全跳脫的建構式程式碼。PCRE、Python、Java、.NET 與 RE2 等引擎可能有不同結果。

使用步驟

  1. 1. 輸入 JavaScript 模式只輸入模式本身,不含兩側斜線;個別選擇旗標可避免重複或誤加不支援的旗標。
  2. 2. 檢查標示的符合項目貼上具代表性的文字,查看每個符合項目、左閉右開索引、編號擷取、具名群組與零長度標記。
  3. 3. 驗證取代與案例使用 $1 或 $<name> 等 JavaScript 取代標記,並逐行加入應符合與不應符合的案例。
  4. 4. 複製實作程式碼開啟 JavaScript 分頁複製 RegExp 建構式程式碼,上線前再檢查效能與目標執行環境相容性。

範例

具名郵件群組

輸入
(?<user>[A-Z0-9._%+-]+)@(?<domain>[A-Z0-9.-]+\.[A-Z]{2,}) / gi
輸出
符合類似電子郵件的文字,並提供 user 與 domain 群組。

ISO 日期部分

輸入
\b(?<year>\d{4})-(?<month>0[1-9]|1[0-2])-(?<day>0[1-9]|[12]\d|3[01])\b / g
輸出
從 YYYY-MM-DD 候選中擷取年、月、日。

它只驗證數字形狀,不判斷 2 月 31 日等真實日曆有效性。

重複單字

輸入
\b(?<word>\w+)\s+\k<word>\b / gi
輸出
尋找相鄰重複詞,例如 is is。

常見情境

  • 把驗證模式加入表單前先除錯
  • 檢查解析器、日誌處理與移轉腳本使用的擷取群組
  • 修改文字或程式碼前預覽尋找取代
  • 把缺陷範例轉成正反回歸案例
  • 產生安全跳脫的 JavaScript RegExp 建構式

注意事項

  • 沒有全域 g 旗標時,JavaScript 只傳回第一個符合項目,取代通常也只影響第一次出現。
  • 零長度全域符合必須手動推進游標;工具用箭頭標出並防止無限迴圈。
  • 正規表示式只能驗證形狀,不能證明商業規則、日曆日期、網址可達或郵件真實存在。
  • 巢狀且具歧義的量詞可能在惡意輸入造成災難性回溯;正式環境應進行基準測試並限制輸入。
  • 後行判斷、Unicode 屬性、旗標與取代標記在 JavaScript、PCRE、Python、Java、.NET 與 RE2 中不同。
  • 測試器會限制顯示的符合數與輸入長度,以保護瀏覽器反應速度。

功能特點

  • 即時 JavaScript RegExp 驗證與符合標示
  • 索引範圍、編號擷取、具名群組與零長度標記
  • 明確的 g、i、m、s、u、y 與 d 旗標控制
  • 依 JavaScript 取代語意即時預覽範本
  • 正例與反例測試及通過/失敗摘要
  • 郵件、網址、IPv4、ISO 日期、色彩與重複詞預設
  • 可複製的 JavaScript 建構式程式碼與速查卡
  • 瀏覽器本機處理並限制符合數量以維持反應速度

常見問題

本工具使用哪個正規表示式引擎?
使用目前瀏覽器內建的 JavaScript RegExp 引擎,因此結果對應瀏覽器,而非 PCRE、Python、Java、.NET 或 RE2。
g 與 i 旗標有什麼作用?
g 會繼續尋找所有符合項目;沒有它只傳回第一個。i 讓字母比對忽略大小寫。
可以查看具名與編號擷取群組嗎?
可以。每張符合卡會顯示 $1、$2 等編號擷取,以及 (?<name>...) 定義的具名群組。
取代標記如何運作?
預覽遵循 JavaScript String.replace 語意,包括編號群組的 $1 與具名群組的 $<name>。
為什麼會顯示零長度符合標記?
某些模式符合位置而非字元;標記讓不可見結果可檢查,並安全推進迴圈。
測試全部通過就能證明正規表示式安全嗎?
不能。案例只涵蓋輸入內容,還需檢查誤報、漏報、引擎支援與最差效能。
測試文字會被上傳嗎?
不會。編譯、比對、取代、測試與程式碼產生都在瀏覽器本機完成。