美文网首页
js RegExp使用

js RegExp使用

作者: Viewwei | 来源:发表于2020-10-26 18:59 被阅读0次

    RegExp类型支持正则表达式,他的标记符号有以下几种
    1.g 表述查找字符串的全局内容,而不是找到第一个就结束
    2.i 表示不区分大小写
    3.m 代表多行
    4.y 表示粘附模式,表示只从lastIndex开始之后的字符串
    示例如下

    let pattern1 = "at/g" //匹配所以的at
    let pattern1 = "[bc]at/i" //匹配第一个bat 或者cat 不区分大小写
    let pattern1 = "[.at/gi" //匹配以at结尾的三字符组合,忽略大小写
    

    RegExp中所以的元字符串必须转义,用\进行转移,元字符串包括 ( [ { \ ^ $ |

    普通字符串和RegExp创建的对象是一样的

    let a = "[bc]at/i"
    let b = new RegExp("[bc]at",i)
    a和 b是一样的
    

    RegExp实例方法
    1 global 是否设置的全局标记
    2 ignoreCase 是否设置了i标记
    3 unicode 是否设置了 u标记
    4 lastIndex: 整数,表示原字符串中下次搜素的开始位置,始终从0开始
    5 muliline 是否设置了m标记
    6 dotAll 是否设置了s标记
    RegExp实例方法
    RegExp的实例方法主要是exec()函数,该函数主要是配合捕获组使用,该方法只接收一个参数,即要应用模式的字符串,如果找到,则放回一个数组,如果没有找到则返回null,但包含两个额外的属性,index input。index是字符串匹配模式的其实位置,input是要查找的字符串

    let text = "cat, bat, sat, fat"
    let pattern = /.at/
    let matches = pattern.exec(text)
    consoloe.log(matches.index) //0
    consoloe.log(matches[0]) //cat
    consoloe.log(pattern.lastIndex) //0
    
    consoloe.log(matches.index) //0
    consoloe.log(matches[0]) //cat
    consoloe.log(pattern.lastIndex) //0
    
    

    全局g的作用

    let text = "cat, bat, sat, fat"
    let pattern = /.at/g
    let matches = pattern.exec(text)
    consoloe.log(matches.index) //0
    consoloe.log(matches[0]) //cat
    consoloe.log(pattern.lastIndex) //3
    
    consoloe.log(matches.index) //5
    consoloe.log(matches[0]) //bat
    consoloe.log(pattern.lastIndex) //8
    
    consoloe.log(matches.index) //11
    consoloe.log(matches[0]) //fat
    consoloe.log(pattern.lastIndex) //13
    
    

    如果设置了全局标记,每次调用exec()都会返回字符串的下一个匹配项,lastIndex也会发生变化
    RegExp构造函数属性
    函数属性可以进行简写
    input 简写 _ 最后搜索字符串 lastMatch 简写& 最后匹配文本
    lastParen简写 + 最后匹配的捕获组 leftContext` input字符串出现在lastMathch前面文本

    相关文章

      网友评论

          本文标题:js RegExp使用

          本文链接:https://www.haomeiwen.com/subject/prjnmktx.html