正则表达式

64 阅读2分钟

正则表达式

定义

正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp或RE。用某种模式去匹配一类字符串的公式

定义方法

  1. 构造函数
    let reg = RegExp('正则表达式模式')
  1. 字面量
    let reg = /正则表达式模式/

正则表达式的常用方法

  1. 正则.test(字符串) 判断字符串中是否有相匹配的字符,正则去匹配字符串,如果匹配成功就返回真,匹配失败返回假

  2. 字符串.search(正则) 返回字符串中相匹配字符的索引,正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1

  3. 字符串.match(正则) 返回一个数组,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null

  4. 字符串.repalce(正则,'新的字符串') 替换字符串,正则去匹配字符串,匹配成功的字符被新的字符串替换

  5. 正则.exec(字符串) 返回数组,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,index:表示第一个匹配的字符在原字符串中的位置,input:表示原字符串,groups:表示当初中命名的分组时匹配到的分组对象;如果匹配不成功,就返回null
    //["254", index: 9, input: "Dgshvbdjb254jbhbj289njnbg675df", groups: undefined]

常用元字符

  • 普通字符: 数字0-9,小写字母a-z,大写字母A-Z
  • 元字符:特殊字符

image.png

限定符-量词

image.png

修饰符

image.png

定位符

image.png

连接符

image.png

转义符

image.png

贪婪模式和非贪婪模式

 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

贪婪模式

image.png

image.png

非贪婪模式

image.png