js正则表达式大全

admin 32 0

《JavaScript正则表达式大全:从基础到高级的全面指南》

**一、引言**

正则表达式(Regular Expression,简称regex)是用于匹配、查找、替换字符串中的特定模式的一种强大工具,在JavaScript中,正则表达式是处理字符串的必备工具,它可以帮助我们处理复杂的文本操作。

**二、基础正则表达式**

1. **匹配单个字符**

* `.` 匹配任意字符(除了换行符)

* `\d` 匹配任意数字

* `\w` 匹配任意字母或数字或下划线

2. **匹配多个字符**

* `*` 匹配前面的子表达式零次或多次

* `+` 匹配前面的子表达式一次或多次

* `?` 匹配前面的子表达式零次或一次

* `{n}` 精确匹配前面的子表达式n次

3. **特殊字符**

* `\s` 匹配任何空白字符(包括空格、制表符、换页符等等)

* `\S` 匹配任何非空白字符

* `\w` 匹配字母、数字或下划线字符

* `\W` 匹配非字母、数字或下划线字符

4. **边界**

* `^` 匹配输入的开始位置

* `$` 匹配输入的结束位置

* `\b` 匹配一个单词边界(即字与空白间的位置)

* `\B` 匹配非单词边界的位置

5. **选择、分组和引用**

* `|` 匹配该符号前后的任一表达式

* `( )` 将几个项组合为一个单元,这个单元可通过"*"、"+"、"?"和"{n}"这样的量词进行修饰,也可以记住与这个组匹配的字符以便后面引用。

* `\n` 在正则表达式中,n 是一个正整数,引用匹配到的第n个分组。

6. **预定义模式**

* `\0` 匹配 NULL (U+0000) 字符,不要在这后面直接跟其他数字。

* `\n` 在正则表达式中匹配换行符,在字符串中匹配换行。

* `\r` 匹配回车符。

* `\t` 匹配制表符。

* `\v` 匹配垂直制表符。

* `\f` 匹配换页符。

7. **修饰符**

* `g` 全局搜索,即查找整个字符串的所有符合条件的地方,而不仅仅是找到第一个就停止。

* `i` 不区分大小写搜索。

* `m` 多行搜索,当使用该标志时,`.`将不会匹配换行符,`^`和`$`将会分别匹配每一行的开始和结束,而不是整个输入字符串的开始和结束。

* `u` 将输入字符串视为 Unicode 字符串,这样在正则表达式中就可以使用 Unicode 的特殊字符和类了,你可以使用`\uXXXX`来查找 Unicode 字符。

* `y` 使正则表达式具有粘滞性,当启用此标志时,如果正则表达式有重叠的话,搜索将总是从上一次搜索结束的地方开始,在字符串 "aaa" 中查找 "aa" 将返回两个位置,而启用此标志后将只返回一个位置。

8. **反斜杠**

在正则表达式中,反斜杠(\)是一个转义字符,用于插入特殊字符序列。"\d" 表示数字,"." 表示任意字符,"*" 表示前面的元素可以出现零次或多次,"%" 表示前面的元素可以出现零次或多次,"[" 表示开始一个字符集,"]" 表示结束一个字符集,"(" 表示开始一个组,")" 表示结束一个组,"{" 表示开始一个量词,"}" 表示结束一个量词,"?" 表示前面的元素可以出现零次或一次,"+" 表示前面的元素可以出现一次或多次,"^" 表示输入的开始位置,"%" 表示输入的结束位置,"|" 表示或者,"(" 表示开始的捕获组,")" 表示结束的捕获组,"\\" 表示反斜杠本身,"[" 表示开始的字符集,"]" 表示结束的字符集,"." 表示任意字符,"^" 表示行的开始,"'" 表示行的结束,"'" 表示引号字符本身,"(" 表示开始的非捕获组,")" 表示结束的非捕获组,"[" 表示开始的非捕获组的字符集,"]" 表示结束的字符集,"[" 表示开始的反向字符集,"]"