跳到主要內容
Toolars
探索

JavaScript 正規表示式測試器

JavaScript Regex Tester

在隔離 Worker 中測試 JavaScript 正規表示式,醒目顯示比對與擷取群組,預覽 $1 取代語法,650 毫秒逾時防止卡死。

任務路徑 / 從輸入到結果

輸入表示式與旗標

回報問題

本機處理

處理說明

工具輸入在這台裝置上處理。

執行工具可能需要下載資源,帳號服務獨立運作。

正在準備離線使用…

隱私說明

任務路徑 / 從輸入到結果

如何測試 JavaScript 正規表示式

  1. 01

    輸入表示式與旗標

    只要在可見的斜線之間輸入 JavaScript 表示式本體,最長 4,096 個字元,再勾選所需旗標:d、g、i、m、s、u 和 y 都附有行內說明。重複或不相容的旗標組合會被拒絕並報出具體錯誤。工作區預置了一個範例表示式,用命名群組擷取 URL 的通訊協定、主機和路徑,可以直接在此基礎上修改。

  2. 02

    貼上測試文字

    在測試文字區貼上或輸入最多 100,000 個字元。貼上會立即在本機執行檢查;開啟自動檢查時,一般輸入會在短暫停頓後重跑;關閉該開關後,可按 Ctrl 或 Command + Enter 或點擊執行按鈕按需檢查。每個標籤旁的計數器會即時顯示表示式和文字長度與上限的關係。

  3. 03

    檢查比對與擷取群組

    比對會直接醒目顯示在文字中,零寬比對則以標記顯示在其位置;結果集上限為 1,000 個比對,達到上限時會明確提示。選中某個比對可查看其精確的 UTF-16 起訖位置、所有編號群組與命名群組,包括未參與比對的群組。可用上一項、下一項、Shift+F3 或 F3 在結果間移動,摘要列還會報告比對數量和本次執行的毫秒耗時。

  4. 04

    預覽 JavaScript 取代語法

    開啟取代預覽頁籤,在最長 20,000 個字元的取代字串中使用 $1、$<name> 等 JavaScript 取代標記。預覽完全遵循原生 String.replace 行為——包括未參與比對的群組會插入什麼——且不會改寫來源文字,因此可以反覆調整取代字串而不遺失原始記錄或文件。

  5. 05

    安全地從高成本表示式復原

    每次測試使用新的本機 Worker:啟動限 5 秒,執行限 650 毫秒。取消會停止 Worker 並關閉自動測試,保留輸入內容。編輯會立即清除舊結果,重新執行後才能複製或下載。逾時或超出輸出上限後,可縮短輸入、減少擷取群組或替換內容,再用新的 Worker 重試。

工具速覽

處理方式
在瀏覽器本機完成
輸入是否離開裝置
從不
資料保留
不儲存任何內容
價格
免費

你的輸入留在瀏覽器裡。

JavaScript 正規表示式測試器 使用經過驗證的本機執行路徑,不會建立隱藏的輸入或輸出歷史記錄。

本機執行

在目前瀏覽器分頁內執行。

無隱藏處理

使用中的工具資料絕不會成為 Toolars 的文件記錄。

無需帳戶

無需建立帳戶即可使用核心工作流程。登入後收藏才會同步至你的帳戶。

立即重設

關閉分頁,目前的工作資料即刻消失。

JavaScript 正規表示式測試器 究竟做什麼

一段數百行的應用程式記錄中包含數個 URL,在上線重新導向規則前必須把它們全部提取出來。預置的範例表示式——用命名群組擷取通訊協定、主機和路徑——就是起點:貼上記錄,觀察每個比對的醒目顯示與精確位置,逐個打開比對檢查主機和路徑擷取。然後在取代欄位輸入 $<protocol>://$<host>,確認預覽確實按預期去掉了路徑,再把驗證過的表示式複製進重新導向程式碼。記錄全程不離開分頁,這在記錄含有內部主機名時尤其重要。

常見問題

支援哪一種正規表示式方言?
本版本只支援 JavaScript RegExp 引擎,與表示式最終在 JavaScript 程式碼中的行為一致。不宣稱相容 PCRE、RE2、Rust regex、Python、Java 或 .NET——這些引擎的語法和行為可能不同,從它們移植過來的表示式值得先在這裡重新測試再使用。
可以使用哪些旗標,各自有什麼作用?
工作區提供 d、g、i、m、s、u 與 y:d 附加比對位置索引,g 查找全部比對,i 忽略大小寫,m 讓錨點按行比對,s 讓點號跨換行,u 啟用 Unicode 感知語意,y 把每次嘗試錨定在上次位置。重複旗標和不相容組合會被拒絕。首版不開放較新的 v 旗標,以便測試範圍與支援的瀏覽器基準一致。
輸入上限是多少?
表達式限 4,096 個 UTF-16 碼元,測試文字限 100,000,替換範本限 20,000。僅顯示前 1,000 個匹配,替換預覽仍在預算內包含全部匹配。替換結果與保留的匹配及擷取文字各限 1,000,000 個 UTF-16 碼元,編號與具名擷取群組項目合計最多 20,000 個。超出上限會明確報錯,不允許匯出部分結果。
災難性回溯會讓頁面失去回應嗎?
表示式執行隔離在專用 Worker 中,審核後的逾時為 650 毫秒。逾時 Worker 會被終止且不再重用,因此即使表示式嚴重回溯,頁面也能保持回應。這能保護目前頁面,但不代表表示式在所有正式環境負載中都安全——這裡的逾時應當作值得重視的警告,在發布表示式之前先處理它。
為什麼我的表示式報錯?
輸入表示式本體,並另外選擇旗標。測試 /abc/i 時,應輸入 abc 並勾選 i。把 /abc/i 整個貼入不會自動啟用 i,而會作為包含字面斜線及字母 i 的有效模式,因此可能產生非預期匹配,不一定會報語法錯誤。JavaScript 引擎會報告無效語法;修正後重新執行。
表示式或測試文字會被上傳或儲存嗎?
不會。比對、群組擷取、取代預覽、複製準備和驗證都在瀏覽器內完成。原始表示式、文字、取代內容與結果不會進入 URL、分析、日誌、遠端請求或瀏覽器儲存空間;清空工作區即丟棄這些內容。

延伸閱讀

相關任務,而非死胡同。

無需返回完整索引,直接進入另一個專注的工作區。

URL 工作臺

URL Workbench

清理 URL 清單並保護簽名連結,逐行說明改動;比較網址組成並匯出 Sitemap。

編輯

JSON 查詢與展開

JSON Explorer

用 JSONPath 查詢、擷取欄位及往返展開 JSON Pointer,保留大整數精度。

檢查

JSON Schema 驗證器

JSON Schema Validator

本機驗證 Draft 7 或 2020-12,定位實例與規則錯誤;從多份樣本推斷 Schema。

檢查

HTML 發布整理

HTML Publishing

整理貼上的 HTML,保留清單、連結與表格語意,安全預覽改動。

發布