ENGINEERING PLAYBOOK

正则表达式核心语法

正则表达式的行为取决于实现和标志。页面使用 JavaScript 示例说明常用构造,同时要求先列出应匹配与不应匹配样本,再逐步增加约束。

适用人群:需要验证字符类、边界、分组和标志差异的 JavaScript 开发人员

排查路径

  1. 先定义目标字符串范围与字符集。
  2. 从字面量开始,再添加边界和字符类。
  3. 使用捕获组或非捕获组表达结构。
  4. 用正反样本检查全局、忽略大小写和多行标志。

执行步骤

  1. 列出至少三个应匹配和三个不应匹配样本。
  2. 确认反斜线在字符串字面量中是否需要二次转义。
  3. 用 ^ 和 $ 时核对多行模式。
  4. 复杂语法优先拆成多个可读步骤。
  5. 对用户输入设置长度和执行时间边界。

可复制命令与示例

提取日期

const re = /\b(\d{4})-(\d{2})-(\d{2})\b/g;

验证简单标识符

const valid = /^[A-Za-z_][A-Za-z0-9_]*$/.test(value);

可复现任务记录

具体错误或任务

标识符校验错误接受数字开头或错误拒绝下划线,需要固定正反样本。

失败信号:value=9name 返回 true,或 value=_name 被错误拒绝。

最小输入

正样本 name_1、_name;反样本 9name、name-1;运行时 Node.js 当前版本。

验证命令或步骤

node -e "for (const v of ['name_1','_name','9name','name-1']) console.log(v,/^[A-Za-z_][A-Za-z0-9_]*$/.test(v))"

预期输出

前两个样本为 true,后两个样本为 false。

失败输出

任一正反样本结果相反,或因字符串二次转义导致表达式与源码不同。

成功判据

正反样本、边界字符和目标运行时全部记录,表达式修改后回归结果稳定。

本任务常见错误

  • 遗漏字符串字面量二次转义
  • 只测试 ASCII 常规输入
  • 未说明多行与大小写标志

资料与适用边界

构造、字符类和标志依据 MDN JavaScript 文档;Unicode 与不同引擎特性需在目标运行时复测。

证据块复核日期:2026-09-04

相关站内页面

资料依据与复核边界

资料复核日期:2026-08-29