返回

JS 正则表达式速查手册

前端

作为一名开发人员,正则表达式(Regex)是必备技能之一。在本文中,我们将深入探讨 JavaScript 中最常用的正则表达式,为你提供一份易于理解且可随时参考的速查手册。

字符匹配

表达式 示例
. 匹配任何字符 "." 匹配 "a" 或 "@"
[abc] 匹配方括号内的字符 "[abc]" 匹配 "a"、"b" 或 "c"
[^abc] 匹配不在方括号内的字符 "[^abc]" 匹配除 "a"、"b" 和 "c" 以外的字符
\d 匹配数字 "\d" 匹配 "1" 或 "7"
\w 匹配单词字符(字母、数字、下划线) "\w" 匹配 "a" 或 "5"
\s 匹配空白字符(空格、制表符、换行符) "\s" 匹配 " " 或 "\n"

字符类

表达式 示例
\b 匹配单词边界 "\bword\b" 匹配 "word",但不匹配 "words" 或 "keyword"
\B 匹配非单词边界 "\Bword\B" 匹配 "word" 中的 "wo",但不匹配整个 "word"
^ 匹配字符串开头 "^word" 匹配以 "word" 开头的字符串
$ 匹配字符串结尾 "word$" 匹配以 "word" 结尾的字符串

分组

表达式 描述 示例
() 分组表达式 `"(a
` ` 逻辑 OR
? 可选匹配 "a?" 匹配 "a" 或不匹配
* 零次或多次匹配 "a*" 匹配 "a" 零次或多次
+ 一次或多次匹配 "a+" 匹配 "a" 一次或多次

匹配限定符

表达式 描述 示例
? 零次或一次匹配 "a?" 匹配 "a" 或不匹配
* 零次或多次匹配 "a*" 匹配 "a" 零次或多次
+ 一次或多次匹配 "a+" 匹配 "a" 一次或多次
{n} 匹配 n 次 "a{3}" 匹配连续出现 3 次的 "a"
{n,} 匹配至少 n 次 "a{3,} 匹配连续出现至少 3 次的 "a"
{n,m} 匹配 n 到 m 次 "a{3,5} 匹配连续出现 3 到 5 次的 "a"

通配符

表达式 描述 示例
. 匹配换行符 ".\n" 匹配 "a\n"
^ 匹配字符串开头 "^word" 匹配以 "word" 开头的字符串
$ 匹配字符串结尾 "word$" 匹配以 "word" 结尾的字符串

反向引用

表达式 描述 示例
\1 匹配第一个捕获组 "(a)\1" 匹配 "aa"
\2 匹配第二个捕获组 "(a)(b)\2" 匹配 "abb"
\n 匹配第 n 个捕获组 "(a)(b)(c)\3" 匹配 "acc"

贪婪匹配与非贪婪匹配

  • 贪婪匹配:尽可能匹配最多的字符。
  • 非贪婪匹配:尽可能匹配最少的字符。
表达式 描述 示例
.* 贪婪匹配任何字符,直到行尾 ".*" 匹配 "abc\ndef" 中的 "abc"
.*? 非贪婪匹配任何字符,直到行尾 ".*? 匹配 "abc\ndef" 中的 "abc"

结语

这份 JavaScript 正则表达式速查手册为你提供了最全面的正则表达式参考,让你能够轻松应对日常开发任务。掌握这些概念和技巧,你将提升代码可读性、提高效率,并解决各种字符串匹配和处理难题。