总览
正则其实就是一个用来处理字符串的一个规则
学习正则首先就是要记住这些元字符和修饰符,因为每个复杂的正则都是由他们组成
创建一个正则
1、字面量的方式
const reg = /\d+/
2、构造函数
const reg = new RegExp("\\d+")
可以看出来两种创建方式是有区别的
- 字面量://中的内容都是元字符,有的具有特殊意义,但是大部分都是代表本身含义,但是构造函数中的参数是字符串,有特殊含义的元字符需要转义字符才能变成有特殊含义的元字符
2)字面量里面不能进行变量拼接,比如+,{},$等在字面量的//中都是具有特殊含义的元字符,但是构造函数可以进行拼接因为是按照字符串在拼接
从第一个和第二个可以看见字面量中+是作为量词元字符出现一次或者多次的进行匹配的,不会进行变量的拼接
组成
每一个正则都是元字符和修饰符组成的
1、元字符就是在//中具有特殊意义的一些字符量词元字符代表出现的次数
2、修饰符用于指定额外的匹配策略,写在正则表达式外面比如
const reg = /\d+/g
常用方法
1、test
判断一个字符串是否是符合制定的规则,返回值为true/false
/\d+/.test('wahaha') -> false
/\d+/.test('wa66haha') -> true
2、exec
把符合规则的内容捕获,
如果当前字符串和规则不匹配则捕获的结果是null
如果符合规则则返回一个数组,第一项是当前捕获的内容,如果有分组则依次是小分组的内容,index:当前捕获内容在字符串中的起始位置,input:原始字符串
这里就捕获到符合规则的66
加了个小括号后数组第二个就是小分组的内容6