正则表达式测试器(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 个空格或制表符缩进、压缩成一行、按名称排序键,并可复制或下载。
- CSV ⇄ JSON 转换工具把 CSV、TSV 转成 JSON,或把 JSON 转回 CSV、TSV。支持引号、单元格内换行、UTF-8 BOM、自动识别分隔符和 GB18030、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 年以前的负值。