一丶概念
用于规范字符串的表达式
1.验证字符串是否满足某种规则
2.从字符串中满足规则的部分提取出来
3.将字符串中满足规则的部分替换成新的部分
二丶定义
两种方式
var reg = /具体的规则/
var reg = new RegExp(规则字符串)
三丶组成部分
1.字符:表示字符串组成部分的字符
普通字符:普通字符串中的字符 /abcd/
元字符:具有特殊意义的特殊字符
\d 任意一个数字
\w 任意一个数字字母下划线
\s 一个空格
. 任意一个字符(使用时用转义\)
[ ] 匹配[ ] 中的任意一个字符
2.修饰符:修饰字符的规则
{n} 前面的字符重复n个
{n,} 前面的字符最少n个
{n,m} 前面的字符最少n个,最多m个
^ 通常放在开头,表示字符串必须以他后面的字符开头
$ 通常放结尾,表示字符串必须以他前面的字符结尾
| 正则中的或者 竖杠
[\u4e00-\u9fa5] - 任意一个汉字
四丶使用方法
1.验证字符串
正则.test(被验证的字符串) 检测字符串中是否有符合规则的部分 - 返回布尔值
字符串.search(正则表达式) 从字符串中查找满足规则部分在字符串中的下标,找到返回下标 找不到返回 - 1
2.提取字符串
正则.exec(字符串)
把字符串中符合规则的部分提取出来 - 返回数组,下标0就是提取结果
字符串.match(正则表达式) 也可以用来提取字符串中满足规则的部分
3.替换字符串
字符串.replace(正则,新的部分)
替换字符串只有字符串的replace方法可以实现,replace可以将满足规则的部分替换成新的部分
五丶模式修正符
var reg = /具体规则/模式修正符
g 开启贪婪模式
i 忽略大小写
var str = '3/30/2023'
// 转成2023年3月30日
var reg = /(\d+)\/(\d+)\/(\d+)/
str = str.replace(reg, '$3年$1月$2日') // 给正则中加了()在替换的时候,可以使用$1表示第一个小括号中匹配到的内容,$2表示第二个小括号中匹配到的内容
console.log(str);
// 提取字符串中除了`a`字符和`b`字符以外的所有字符
var str = 'abcd123456@#$%fasdioaefgaijhaaaa'
// [^]表示非的意思,排除掉中括号中的内容
var reg = /[^ab]+/
var result = reg.exec(str)
var result = str.match(reg)
console.log(result);
六丶案例