1. 概念
1.正则表达式(Regular expression)是什么: 对字符串进行逻辑匹配运算的 内置对象
表达式: 对字符串进行运算
2.正则表达式作用: 字符串格式运算
对字符串进行逻辑匹配运算
3.正则表达式使用流程
(1) 创建正则对象: let reg = new RegExp('正则')
(2) 调用正则对象的test方法: reg.test('需要校验的字符串')
true: 校验通过
false: 校验不通过
4.正则表达式语法由两部分组成 /正则表达式/
1. 原以文本字符: 字符串本身的含义
*ps: 别多想,写什么就是什么。想的越多,错的越离谱
2. 元字符 :改变了字符串本身的含义,类似于js中的关键字
[] {} () . \ + ? * ^ $ |
/小红/ : 检测字符串中有没有小红 不是 有一个字,也不看全有 就是看有没有
eg: console.log(/小红/.test('小兰很可爱')) //false
console.log(/小红/.test('小兰的红彤彤的脸像苹果')) //false
console.log(/小红/.test('小兰是小兰的姐姐')) //true
2. 字符类
① 原以文本字符 :字符串本身含义
/abc/ : 检测字符串中有没有 abc
② 元字符:改变字符串含义
[] {} () . \ + ? * ^ $ |
[] : 字符类
/abc/ : 原义文本字符。 检测字符串有没有 abc
/[abc]/ : 字符类。 将a 或 b 或 c归为一类,满足任意一个即可.
言简意赅得说就是: 检测字符串中有没有 a 或 b 或 c
/[^abc]/ : 反向类。 将不是a 或 不是b 或 不是c的归为一类,满足任意一个即可。
言简意赅得说就是: 检测字符串中有没有除 abc之外的任意字符
eg: /[abc]/ : 有 是abc任意一个字符即可
console.log(/[abc]/.test('a123')) //true
console.log(/[abc]/.test('12345')) //false
/[^abc]/ : 有 不是abc任意一个字符即可
console.log(/[^abc]/.test('abc123')) //true
console.log(/[^abc]/.test('12345')) //true
console.log(/[^abc]/.test('abcabc')) // false
3. 预定义类
预定义类: 正则表达式提供好的用来匹配常见的字符类
| 预定义类 | 等价类 | 含义 |
|---|---|---|
| . | [^\r\n] | 除了回车和换行之外的所有字符 |
| \d | [0-9] | 数字字符 |
| \D | [^0-9] | 非数字字符 |
| \s | [\f\n\r\t\v] | 空白字符 |
| \S | [^\f\n\r\t\v] | 非空白字符 |
| \w | [a-zA-Z_0-9] | 单词字符(字母、下划线、数字) |
| \W | [^a-zA-Z_0-9] | 非单词字符 |
重点: 常用的正则表达式
1.手机号正则
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
2.验证码
/^\d{6}$/
3.账号密码 6-20位: 大小写字母, 下划线_
/^\w{6,20}$/
4.邮箱
/^\w+[@]\w+\.\w+(\.\w+)?$/