正規表示式測試器(JavaScript)
測試 JavaScript 正規表示式:醒目標示符合位置、編號與具名群組,並預覽取代結果;執行過久的樣式(ReDoS)會自動中止。
- 在瀏覽器內處理(不上傳)
不需要前後的斜線(/)。例:\d+、(?<year>\d{4})
可使用 $1、$<name>、$&(整個符合內容)與 $$($ 本身)。
樣式最多 1,000 個字元、測試字串最多 100,000 個字元;超過 1 秒的比對會自動中止。
執行中…
使用方式
- 輸入正規表示式樣式,並勾選需要的旗標(g、i、m 等)。
- 輸入測試字串後,符合的位置會被醒目標示,並列出位置與群組。
- 輸入取代字串(可用 $1、$<name> 等)即可預覽取代結果並複製。
常見問題
使用哪一種正規表示式引擎?
使用你瀏覽器內建的 JavaScript 引擎(RegExp)。部分語法與行為和 PCRE、Python、Java 不同。
會不會讓頁面卡住?
不會。比對在獨立的 Web Worker 中執行,超過 1 秒就會停止 Worker 並顯示「執行過久」,即使遇到 ^(a+)+$ 這類災難性回溯,頁面仍可操作。
符合空字串的樣式會無限循環嗎?
不會。符合空字串後會前進到下一個位置(使用 u、v 旗標時以完整字元前進),因此不會無限循環。
注意事項與限制
- 你輸入的內容只在此頁面處理,不會傳送到 YUCTS 的伺服器。
- 樣式上限 1,000 個字元,測試字串上限 100,000 個字元;醒目標示與清單只顯示前 1,000 處。
- 可用的語法與旗標(如 v、d)取決於瀏覽器版本,不支援的旗標無法勾選。
- 1 秒的限制受裝置效能影響,較慢的裝置可能連一般樣式也會被中止。
- Safari(JavaScriptCore)在回溯超過一定量時會自行停止搜尋並回報「沒有符合」。本工具會對耗時的執行顯示提醒,但無法判斷該結果是否正確。
資料來源
- ECMAScript Language Specification: RegExp (Regular Expression) Objects(在新分頁開啟) — 查核日期: 2026-10-31
- OWASP: Regular expression Denial of Service (ReDoS)(在新分頁開啟) — 查核日期: 2026-10-31
相關工具
- JSON 格式化/驗證工具檢查 JSON 語法並標示錯誤的行與欄,可用 2、4 個空白或 Tab 排版、壓縮成一行、依名稱排序鍵,並可複製或下載。
- CSV ⇄ JSON 轉換工具把 CSV、TSV 轉成 JSON,或把 JSON 轉回 CSV、TSV。支援引號、儲存格內換行、UTF-8 BOM、自動判斷分隔字元與 Big5、Shift_JIS 檔案,也能選擇、排序與重新命名欄位。
- YAML ⇄ JSON 轉換工具把 YAML 轉成 JSON,或把 JSON 轉成 YAML。不會載入自訂或可執行的標籤,並限制別名展開以安全處理;錯誤會標示行與欄。
- Base64 編碼/解碼(文字與檔案)把含中文、日文或表情符號的文字以 UTF-8 轉成 Base64,也能把 Base64 還原。支援 URL 安全格式、可選補位(=),以及檔案與 data URL。
- URL 編碼/解碼(百分比編碼)將含中文的網址或查詢字串進行 % 編碼與解碼,支援 encodeURIComponent、encodeURI 與表單格式(+),遇到錯誤的 % 會標示出錯位置。
- Unix 時間戳記轉換工具把 Unix 時間戳記轉成日期時間,或把日期時間轉成時間戳記。支援秒、毫秒、微秒、奈秒,ISO 8601 與 IANA 時區,也能正確處理 2038 年以後與 1970 年以前的負值。