跳到主要内容
Toolars
探索

JavaScript 正则表达式测试器

JavaScript Regex Tester

在隔离 Worker 中测试 JavaScript 正则:匹配高亮、精确的 UTF-16 位置、编号与命名捕获组,以及 $1、$<name> 替换预览;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,保留列表、链接与表格语义,安全预览改动。

发布