后端
正则表达式元字符
1. 元字符概念
| 类型 | 说明 | 示例 |
|---|---|---|
| 普通字符 | 大多数的字符只能描述它们本身,例如所有的字母和数字 | a, b, 1, 2 |
| 元字符(特殊字符) | 一些具有特殊含义的字符,可以极大提高灵活性和强大的匹配功能 | [a-z] 表示匹配所有小写字母 |
2. 元字符分类
| 分类 | 说明 |
|---|---|
| 边界符 | 表示位置,开头和结尾,必须用什么开头,用什么结尾 |
| 量词 | 表示重复次数 |
| 字符类 | 比如 \d 表示 0-9 |
3. 边界符
| 边界符 | 说明 |
|---|---|
^ | 表示匹配行的文本(以谁开始) |
$ | 表示匹配行的文本(以谁结束) |
说明:如果 ^ 和 $ 在一起,表示必须是精确匹配。
4. 量词
| 量词 | 说明 |
|---|---|
* | 重复零次或多次 |
+ | 重复一次或多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
5. 字符类
| 字符类 | 说明 | 示例 |
|---|---|---|
[] | 匹配字符集合,后面的字符串只要包含里面的任意字符出现都返回为true | /[abc]/.test('andy') // true/[abc]/.test('baby') // true/[abc]/.test('cry') // true/[abc]/.test('die') // false |
- | 在字符类中表示一个范围 | [a-z] 表示匹配所有小写字母[A-Z] 表示匹配所有大写字母[0-9] 表示匹配所有数字[a-zA-Z0-9] 表示匹配所有字母和数字 |
6. 修饰符
| 修饰符 | 说明 | 示例 |
|---|---|---|
i | ignore 的缩写,正则匹配时字母不区分大小写 | /a/i.test('A') // true |
g | global 的缩写,匹配所有满足正则表达式的结果 | 'ababa'.replace(/a/g, 'x') // 'xbxbx' |
语法: /表达式/修饰符
7. 预定义字符类
| 预定义类 | 说明 | 等价于 |
|---|---|---|
\d | 匹配0-9之间的任意数字,相当于 [0-9] | [0-9] |
\D | 匹配0-9以外的任意字符,相当于 [^0-9] | [^0-9] |
\w | 匹配任意的字母、数字和下划线,相当于 [A-Za-z0-9_] | [A-Za-z0-9_] |
\W | 匹配字母、数字、下划线以外的字符,相当于 [^A-Za-z0-9_] | [^A-Za-z0-9_] |
\s | 匹配空格(包括换行符、制表符、空格符等),相当于 [\t\r\n\v\f] | [\t\r\n\v\f] |
\S | 匹配非空格的字符,相当于 [^\t\r\n\v\f] | [^\t\r\n\v\f] |
