正则表达式(基础认识)
regular expression : RegExp
首先看下关于本文章的思维导图吧

记忆记忆,对于初学正则的小伙伴,这编文章还是值得记忆一下的
1. 作用
- 用来处理字符串的规则,学正则就是为了制定规则
- 只能处理字符串
- 它是一个规则:可以验证字符串是否符合某个规则(test),也可以把字符串中符合规则的内容捕获到(exec/match...)
let str = 'good good study,day day up'; let reg = /\d+/; //是否包含数字 console.log(reg.test(str)); // false str = '2020-04-07'; console.log(reg.exec(str));//"2020", index: 0, input: "2020-04-07", groups: undefined
2. 编写正则表达式
2.1 创建方式
- 字面量方式:两个斜杆之间包起来的,都是用来描述规则的元字符
let reg = /\d+/; - 构造函数模式创建 :两个参数
let reg = new RegExp('\\d+');- 元字符字符串
- 修饰符字符串
2.2 正则表达式由两部分组成
2.2.1 元字符
- 量词元字符:设置出现的次数
| 元字符 | 含义 |
|---|---|
| * | 零到多次 |
| + | 一到多次 |
| ? | 零次或者一次 |
| {n} | 出现n次 |
| {n,} | 出现n到多次 |
| {n,m} | 出现n到m次 |
- 特殊元字符:单个或者组合在一起代表特殊的含义
| 元字符 | 含义 |
|---|---|
| \ | 转义字符(普通->特殊->普通)) |
| . | 除\n(换行符)以外的任意字符 |
| ^ | 以哪一个元字符开头 |
| $ | 以哪一个元字符结尾 |
| \n | 换行符 |
| \d | 0-9之间的一个数字 |
| \D | 非0-9之间的一个数字(大写和小写的意思是相反的) |
| \w | 数字 字母 下划线中的任意一个字符 |
| \s | 一个空白字符(包含空格 制表符 换页符等) |
| \t | 一个制表符(一个TAB键:四个空格) |
| x | y |
| [xyz] | x或y或z中的一个字符 |
| [^xy] | 除了x/y以外的任意字符 |
| [a-z] | 指定a-z这个范围的任意字符([0-9][a-z][A-Z]_)=== \w |
| [^a-z] | 除了a-z以外的字符 |
| () | 分组符号 |
| (?:) | 只匹配不捕获 |
| (?=) | 正向预查 |
| (?!) | 负向预查 |
- 普通元字符
/name/ 此正则匹配的是name
2.2.2 修饰符:img(写在正则的外面)
| 修饰符 | 英文全称 | 含义 |
|---|---|---|
| i | ignoreCase | 忽略单词大小写匹配 |
| m | multiline | 可以进行多行匹配 |
| g | global | 全局匹配 |
本文使用 mdnice 排版