正则:
用来描述或者匹配一系列符合某种规则的字符串
作用:
- 数据验证
- 内容检索
- 内容替换
- 内容过滤
创建正则对象:
-
通过实例化对象
let reg = new RegExp("正则表达式","模式修正符");- 常用的模式修正符
- g 全局
- i 不区分大小写
- m 换行,多行
- 正则对象的常用方法
test(str)检测正则对象是否能够匹配str 返回值true||falseexec(str)检测正则对象是否能够匹配str 如果能匹配返回一个拥有特殊属性的数组,如果不能返回null
- 常用的模式修正符
-
通过字面量的方式
let reg = /正则表达式/模式修正符 正则对象 其中//代表定界符
正则表达式:
使用场景:1、正则对象 2、str.split(正则对象) 3、replace(正则对象,替换的内容)
4、str.search(正则表达式)
-
原子:正则表达式中最小的一个内容
\d 0-9的数字 \w 数字、字母、下划线 \s 空白、\n \r \t \D 除了0-9以外的字符 \W 除了数字、字母、下划线以外的字符 \S 除了空白以外的字符 -
原子表:[]
[a-c] a-c [a-z] 小写a-z [A-Z] 大写A-Z [a-zA-Z] 英文字母大写+小写 [a-zA-Z0-9] 数字字母下划线 -
元字符
- . 所有字符
- | 或
-
原子组:() 可以进行存储和调用
默认存储在内存中,可以使用\1 \2 等方式调用
(?: )可以使原子组不在内存中存储,无法被调用
let str1 = "我今天很开心" let str2 = "你今天很开心" let reg = /(我|你)今天很开心/glet str = "<div>hellow</div>" let reg = /<(div)>hellow<\/\1>/g let str = "<div>hellow-hellow</div>" let reg = /<(div)>(hellow)-\2<\/\1>/g -
正则中的数量:贪婪原则
*0个或多个 >=0+1个或多个 >=1?0个或1个{num}限制num个{15,18}15到18{6,}6个或多个
-
吝啬原则:尽可能少取
*?0个或多个 >=0+?1个或多个 >=1??0个或1个{num,}?限制num个{15,18}?15到18{6,}?6个或多个
-
边界判断
^ 开始
$ 结束
\b 单词的边界
\B 非单词边界