正则表达式(基础认识)
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 | 全局匹配 |