美文网首页
正则表达式

正则表达式

作者: 陈大事_code | 来源:发表于2019-05-16 16:13 被阅读0次

    作用

    用于匹配字符串中符合某些规则的一种方式。

    常用

    1. 验证匹配(验证身份证号、验证车牌号、验证邮箱验证等)

    2. 截取字段(截取URL中的有效信息)

    3. 替换

    先举个栗子

    // 验证一个字串符中是否含有字符a
    let str = '111111a111111'
    let reg = /[a]+/   // 匹配a字符串一次或多次
    reg.test(str) // true
    

    这里test方法,就是用来验证str是否符合该正则表达式的要求。

    规范

    当然了,一般我们用到的正则表达式肯定不用像上面的栗子那么简单啦,大家看下常用的规范

    • 元字符串
    原字符串.png
    • 限定符
    限定符.png
    • 标志
    标志.png
    • 特殊字符
    [abc] // 中括号, 表示abc中任意匹配一个
    
    [^] // 中括号加^  匹配除中括号以内的内容
    
    \  //  反斜号,转义字符。说明:由于存在 *、+、?等特殊含义的字符,
      // 如果我们只是想单纯地匹配这些字符串怎么办,就需要用\来将他们转为正常的字符
    
    | // 或者,竖线前后任意匹配一个
    
    () // 小括号,完全匹配括号内部的字符,常与|合起来用
    

    定义正则

    • 对象格式
    let reg = new RegExp("\\d+") // 一般定义
    let reg = new RegExp("\\d+", "g") // 全局匹配
    
    • 字符串格式(常用)
    let reg = /\d+/  // 一般定义
    let reg = /\d+/g // 全局匹配
    

    常用方法

    • test方法,验证
    // 返回值为boolean值
    let str = '111111a111111'
    let reg = /[a]+/  
    reg.test(str) // true
    
    • match方法 截取
    // 返回匹配到的值的数组
    let num = '11a22'
    let reg = /\d+/g
    num.match(reg) // [11, 22], 注意num与reg的顺序
    
    • replace方法 替换
    // 返回替换之后的字符串
    let num = '11a22'
    let reg = /\d+/
    num.replace(reg, '*') // '*a22'  第二个参数为需要用来替换的值
    

    这里需要注意g的全局匹配,如果不使用g,则只会替换第一个,就停止。

    • split方法 分割
    // 返回分隔完之后的数组
    let num = '11a22'
    let reg = /a/
    num.split(reg) // [11,22]
    

    参考:JS正则表达式

    相关文章

      网友评论

          本文标题:正则表达式

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