返回

揭秘JavaScript正则表达式常用技巧:扫清语法盲点!

前端

JavaScript正则表达式备忘单:助你轻松驾驭语法

正则表达式(Regular Expression,简称Regex)是一种强大的工具,用于在字符串中匹配模式。JavaScript提供了RegExp对象,允许你在程序中使用正则表达式。

本文将为你提供一个详细的备忘单,涵盖常见的JavaScript正则表达式语法和实例,帮助你轻松理解和使用正则表达式。

1. 基础语法

语法 **** 示例
^ 匹配字符串的开头 /^Hello/匹配以"Hello"开头的字符串
$ 匹配字符串的结尾 /World$/匹配以"World"结尾的字符串
. 匹配任何单个字符 /.*/匹配任何非空字符串
* 匹配前面元素0次或多次 /ab*/匹配包含一个或多个"b"的字符串
+ 匹配前面元素1次或多次 /ab+/匹配包含一个或多个连续"b"的字符串
? 匹配前面元素0次或1次 /ab?/匹配包含0个或1个"b"的字符串
[] 匹配指定字符集中的任何单个字符 /[abc]/匹配"a"、"b"或"c"中的任何一个字符
[^] 匹配不在指定字符集中的任何单个字符 /[^abc]/匹配不在"a"、"b"或"c"中的任何一个字符
\d 匹配任何数字 /\d/匹配任何数字字符
\w 匹配任何字母、数字或下划线 /\w/匹配任何字母、数字或下划线字符
\s 匹配任何空白字符,包括空格、制表符、换行符和回车符 /\s/匹配任何空白字符

2. 分组和引用

语法 **** 示例
() 将部分正则表达式分组 `/(a
\1\2、… 引用前面分组匹配的字符串 /(a)(\1)/匹配重复的字母

3. 限定符

语法 描述 示例
{n} 匹配前面元素n次 /a{3}/匹配3个连续"a"
{n,} 匹配前面元素n次或更多次 /a{3,}/匹配3个或更多连续"a"
{n,m} 匹配前面元素n到m次 /a{3,5}/匹配3到5个连续"a"

4. 特殊字符

字符 描述 示例
\ 转义字符,用于将特殊字符视为普通字符 /\./匹配一个句号
[] 字符集 /[abc]/匹配"a"、"b"或"c"中的任何一个字符
^ 行首 /^Hello/匹配以"Hello"开头的字符串
$ 行尾 /World$/匹配以"World"结尾的字符串
* 匹配前面元素0次或多次 /.*/匹配任何非空字符串
+ 匹配前面元素1次或多次 /ab+/匹配包含一个或多个连续"b"的字符串
? 匹配前面元素0次或1次 /ab?/匹配包含0个或1个"b"的字符串

5. 实例

正则表达式 匹配内容
/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ 电子邮件地址
/^\d{4}-\d{2}-\d{2}$/ 日期(格式:yyyy-mm-dd)
/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ IPv4地址
/^http(s)?:\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}([\/\w .-?]*)*\/?$/ URL
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/ 强密码(至少8个字符,包含大写字母、小写字母、数字和特殊字符)

6. 技巧

  • 使用 ^$ 锚定字符串的开头和结尾。
  • 使用 . 匹配任何字符。
  • 使用 *+? 限定符匹配字符出现的次数。
  • 使用 [] 字符集匹配指定字符集中的字符。
  • 使用 [^] 字符集匹配不在指定字符集中的字符。
  • 使用 \d 匹配任何数字。
  • 使用 \w 匹配任何字母、数字或下划线。
  • 使用 \s 匹配任何空白字符。
  • 使用 () 分组和引用部分正则表达式。
  • 使用 {} 限定符匹配字符出现的次数。
  • 使用 \ 转义字符将特殊字符视为普通字符。

7. 总结

JavaScript正则表达式提供了灵活强大的字符串处理功能。通过掌握正则表达式,你可以轻松地完成各种字符串操作任务,如查找、替换、验证等。