使用示例文本测试 JavaScript 正则表达式
当您需要在将正则表达式用于前端、Node.js 或 TypeScript 代码之前检查其匹配内容时,请使用此工具。
粘贴示例文本,输入不带斜杠的模式,选择标志,然后查看匹配、分组和替换输出。
每个结果的含义
- 高亮匹配项 显示模式在示例文本中匹配的位置。
- 匹配与分组 列出匹配范围、编号分组和命名分组。
- 替换输出 预览 JavaScript
String.replace()的替换结果。 - 复制匹配 JSON 复制结构化的匹配数据。 复制替换内容 复制替换预览生成的文本。
- 复制 URL 将当前的模式、标志、替换和示例文本复制到 URL 哈希中。
支持的标志
| Flag | Name | Effect |
|---|---|---|
g | Global | 查找所有匹配而不仅仅是第一个。 |
i | 忽略大小写 | 匹配字母时不区分大小写。 |
m | Multiline | Make ^ and $ 使 ^ 和 $ 按行工作。 |
s | DotAll | Let . 使 . 匹配换行符。 |
u | Unicode | 使用支持 Unicode 的匹配规则。 |
y | Sticky | 仅从当前 JavaScript 的 lastIndex 开始匹配。 lastIndex. |
Limits
- 这是一个 JavaScript
RegExp测试器,而不是 PCRE、Python、Java、SQL 或 .NET 的正则表达式测试器。 - 示例文本和收集到的匹配有上限,以保持页面响应。
- 一些明显的嵌套量词模式会被屏蔽,但这并不是完整的 ReDoS 分析器。
- JavaScript 不为单次正则执行提供同步超时。
- URL 哈希可能包含粘贴的示例文本。在共享复制的 URL 之前,请移除私有日志或机密信息。
常见问题
此页面使用哪种正则语法?
它使用 JavaScript RegExp 语法。用于浏览器、Node.js 和 TypeScript 的正则工作。为 PCRE、Python、Java、SQL 或 .NET 编写的模式可能行为不同。
为什么我只看到一个匹配?
添加 g 用于收集所有匹配的标志。没有 g,JavaScript 通常只返回第一个匹配。
我可以在替换中使用命名分组吗?
是的。命名分组例如 (?<level>ERROR|WARN) 会出现在匹配详情中,并可以在替换文本中作为 $<level>.
“复制匹配 JSON”和“复制替换”之间有什么区别?
“复制匹配 JSON”会将匹配范围和分组以 JSON 形式复制。“复制替换”会复制替换预览生成的文本。
这个工具能检测到不安全的回溯模式吗?
只能部分检测。该工具会屏蔽一些明显的嵌套量词模式并限制输入大小,但它并不是完整的 ReDoS 分析器。