正则表达式

107 阅读2分钟

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]/ : 字符类。 将abc归为一类,满足任意一个即可.
 言简意赅得说就是:  检测字符串中有没有 abc
/[^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+)?$/