一、定义
匹配字符串的模式
二、使用
1、创建正则对象(js内置对象)
(1)构造函数方式
let reg=new RegExp('\d+',g)
(2)字面量方式
let reg=/\d+/g
三、常用方法
1、test(正则的方法)
正则.test(字符串)
匹配上返回true,否则返回false
2、search(字符串的方法)
字符串.search(正则)
匹配成功返回索引号,否则返回-1
3、match(字符串的方法)
字符串.match(正则)
匹配成功返回数组,不成功返回null
4、replace(字符串的方法)
字符串.replace(正则,新字符)
返回替换后的新字符
5、exec(正则的方法)
正则.exec(字符串)
匹配成功返回数组(匹配到的第一个元素,index:第一个匹配成功的字符索引号,input:原字符串,groups:分组成匹配到的分组对象),不成功返回null
四、常用字符
1、元字符(原则一个字符匹配一个)
2、限定符-量词(限定前面字符出现次数)
3、连接符
4、定位符-边界
/\bis\b/
5、修饰符
(1)g: global 全文搜索,不添加,搜索到第一个匹配停止
(2)i: ignore case 忽略大小写,默认大小写敏感
(3)m: multiple lines 多行搜索
6、转义符
(1)\f 匹配换页符
(2)\n 匹配换行符
(3)\r 匹配回车符
(4)\t 匹配制表符
(5)\v 匹配垂直制表符
(6)\\ 匹配\
(7)\" 匹配 "
(8) \' 匹配 '
7、选择符
| 或
例如:/a|b/ a或b
五、贪婪模式和非贪婪模式
1、贪婪模式是默认模式
在代表数量的标识符后放置?来开启非贪婪模式
六、分组和方向引用
const str = '2022-09-05'
const reg = /(\d{4})-(\d{2})-(\d{2})/ //(\d{4})=$1 (\d{2})=$2 (\d{2})=$3
let newStr = str.replace(reg,'$2/$3/$1')
//newStr打印出来是09/05/2022