• 开发者工具箱v0.0.1
  • UUID 生成器
  • ULID 生成器
  • Token 生成器
  • 文本哈希
  • Bcrypt
  • BIP39 助记词生成器
  • 文本加密解密
  • HMAC 生成器
  • RSA 密钥对生成器
  • 密码强度分析器
  • PDF 签名检查器
  • Base64 字符串转换器
  • Color 选择器
  • 大小写转换
  • 日期时间转换器
  • 整数进制转换器
  • 罗马数字转换器
  • Base64 文件转换器
  • 文本转 NATO 音标字母
  • 文本转二进制
  • 文本转 Unicode
  • YAML 转 JSON
  • YAML 转 TOML
  • JSON 转 YAML
  • JSON 转 TOML
  • 列表转换器
  • TOML 转 JSON
  • TOML 转 YAML
  • XML 转 JSON
  • JSON 转 XML
  • Markdown 转 HTML
  • URL 编码器
  • JWT 解析器
  • HTML 实体编解码
  • URL 解析器
  • 设备信息
  • Basic Auth 生成器
  • Meta 标签生成器
  • OTP 代码生成器
  • MIME 类型
  • 键盘按键信息
  • 字符串 Slug 化
  • HTML 所见即所得编辑器
  • User Agent 解析器
  • HTTP 状态码
  • JSON 差异对比
  • Outlook SafeLink 解码器
  • 二维码生成器
  • WiFi 二维码生成器
  • SVG 占位符生成器
  • 摄像机记录器
  • JSON 查看器
  • 正则表达式测试器
  • Git 命令备忘录
  • 随机端口生成器
  • Crontab 表达式生成器
  • JSON 压缩工具
  • JSON 转 CSV
  • SQL 格式化
  • Chmod 权限计算器
  • Docker run 转 docker-compose
  • XML 格式化
  • YAML 查看器
  • 邮箱规范化
  • 正则表达式备忘录
  • IPv4 子网计算器
  • IPv4 地址转换器
  • IPv4 范围扩展器
  • MAC 地址查询
  • MAC 地址生成器
  • IPv6 ULA 生成器
  • 数学计算器
  • ETA 计算器
  • 百分比计算器
  • 计时器
  • 温度转换器
  • 基准生成器
  • Lorem Ipsum 生成器
  • 文本统计
  • Emoji 选择器
  • 字符串混淆
  • 文本差异对比
  • 缩写词生成器
  • ASCII 艺术字生成器
  • 电话分析器和格式化程序
  • IBAN验证器和解析器
  • Made with React + Next.js

正则表达式备忘录

JavaScript 正则表达式速查表和参考指南

普通字符

表达式描述
. 或 [^\n\r]除换行符或回车符外的任何字符
[A-Za-z]字母
[a-z]小写字母
[A-Z]大写字母
\d 或 [0-9]数字
\D 或 [^0-9]非数字
_下划线
\w 或 [A-Za-z0-9_]字母、数字或下划线
\W 或 [^A-Za-z0-9_]\w 的反向
\S\s 的反向

空白字符

表达式描述
空格
\t制表符
\n换行符
\r回车符
\s空格、制表符、换行符或回车符

字符集

表达式描述
[xyz]x、y 或 z 中的任意一个
[^xyz]既不是 x、y 也不是 z
[1-3]1、2 或 3 中的任意一个
[^1-3]既不是 1、2 也不是 3

• 字符集就像对方括号内的单个字符进行 OR 操作

• 在左方括号 [ 后使用 ^ 来"否定"字符集

• 在字符集中,. 表示字面上的句点

需要转义的字符

在字符集外

表达式描述
\.句点
\^插入符
\$美元符号
\|管道符
\\反斜杠
\/正斜杠
\(左括号
\)右括号
\[左方括号
\]右方括号
\{左花括号
\}右花括号

在字符集内

表达式描述
\\反斜杠
\]右方括号

• ^ 只有在紧跟字符集的左方括号 [ 后才需要转义

• - 只有在两个字母或两个数字之间时才需要转义

量词

表达式描述
{2}恰好 2 次
{2,}至少 2 次
{2,7}至少 2 次但不超过 7 次
*0 次或多次
+1 次或多次
?恰好 0 次或 1 次

• 量词放在要量化的表达式之后

边界

表达式描述
^字符串开始
$字符串结束
\b单词边界

单词边界匹配的工作原理:

• 在字符串开头,如果第一个字符是 \w

• 在字符串内相邻的两个字符之间,如果第一个字符是 \w,第二个字符是 \W

• 在字符串末尾,如果最后一个字符是 \w

匹配

表达式描述
foo|bar匹配 foo 或 bar
foo(?=bar)匹配 foo(如果后面是 bar)
foo(?!bar)匹配 foo(如果后面不是 bar)
(?<=bar)foo匹配 foo(如果前面是 bar)
(?<!bar)foo匹配 foo(如果前面不是 bar)

分组和捕获

表达式描述
(foo)捕获组;匹配并捕获 foo
(?:foo)非捕获组;匹配 foo 但不捕获
(foo)bar\1\1 是对第 1 个捕获组的反向引用;匹配 foobarfoo

• 捕获组仅在以下方法中相关:

  • string.match(regexp)
  • string.matchAll(regexp)
  • string.replace(regexp, callback)

• \N 是对第 N 个捕获组的反向引用。捕获组从 1 开始编号。

参考资源

MDN - 正则表达式
RegExplained - 正则表达式可视化工具