正则表达式
定义
正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp或RE。用某种模式去匹配一类字符串的公式
定义方法
- 构造函数
let reg = RegExp('正则表达式模式')
- 字面量
let reg = /正则表达式模式/
正则表达式的常用方法
-
正则.test(字符串) 判断字符串中是否有相匹配的字符,正则去匹配字符串,如果匹配成功就返回真,匹配失败返回假
-
字符串.search(正则) 返回字符串中相匹配字符的索引,正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1
-
字符串.match(正则) 返回一个数组,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null
-
字符串.repalce(正则,'新的字符串') 替换字符串,正则去匹配字符串,匹配成功的字符被新的字符串替换
-
正则.exec(字符串) 返回数组,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,index:表示第一个匹配的字符在原字符串中的位置,input:表示原字符串,groups:表示当初中命名的分组时匹配到的分组对象;如果匹配不成功,就返回null
//["254", index: 9, input: "Dgshvbdjb254jbhbj289njnbg675df", groups: undefined]
常用元字符
- 普通字符: 数字0-9,小写字母a-z,大写字母A-Z
- 元字符:特殊字符
限定符-量词
修饰符
定位符
连接符
转义符
贪婪模式和非贪婪模式
const str ='123456789'
const reg = /\d{3,6}/ //替换3或6次,贪婪模式会直接替换6个
const reg1 = /\d{3,6}?/ //替换3或6次,非贪婪模式会替换3个
let newStr = str.replace(reg,'*') //*789
let newStr1 = str.replace(reg1,'*') //*456789
console.log(newStr)
console.log(newStr1