美文网首页
常用正则方法

常用正则方法

作者: 闲人追风落水 | 来源:发表于2022-12-13 16:29 被阅读0次

    可以使用正则的方法

    常见的用法

    // 1、 2-64位数字英文汉字下划线,只能以字母和汉字开头
    let value = '_abcdef'
    let nameStatus = new RegExp(/^(?!_)(?![0-9])[a-zA-Z0-9_\u4e00-\u9fa5]{2,64}$/)
    let result = nameStatus.test(value)
    console.log(result);
    
    //2、验证手机号码
    //移动:134(0 - 8) 、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198 
    //联通:130、131、132、145、155、156、175、176、185、186、166
    //电信:133、153、173、177、180、181、189、199 
     var move = /^((134)|(135)|(136)|(137)|(138)|(139)|(147)|(150)|(151)|(152)|(157)|(158)|(159)|(178)|(182)|(183)|(184)|(187)|(188)|(198))\d{8}$/g;
     var link = /^((130)|(131)|(132)|(155)|(156)|(145)|(185)|(186)|(176)|(175)|(170)|(171)|(166))\d{8}$/g;
     var telecom = /^((133)|(153)|(173)|(177)|(180)|(181)|(189)|(199))\d{8}$/g;
     if (move.test(value)) {
          return true;
      } else if (link.test(value)) {
          return true;
      } else if (telecom.test(value)) {
          return true;
      } else {
          return false;
      }
    
    //3、校验邮箱
     let mailStatus = new RegExp(/[\w]+(\.[\w]+)*@[\w]+(\.[\w])+/);
     let result = mailStatus.test(value)
    
    //4、密码校验  8-18位的密码  必须含有字母 数字 和某些特殊字符
    let passwordStatus = new RegExp(/^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[@#!$~\%\=\<\>\-\$\(\)\*\+\?\^\{\}\[\]\|])[\S]{8,18}$/)
    let result = passwordStatus.test(value)
    
    
    

    实际用法

    必须含有某个字符
    
    必须含有数字
    (?=.*[0-9])
    必须含有字母
    (?=.*[a-zA-Z])
    
    
    
    
    | 方法 | 描述 |
    | --- | --- |
    | [`exec`] | 一个在字符串中执行查找匹配的 RegExp 方法,它返回一个数组(未匹配到则返回 null)。 |
    | [`test`]| 一个在字符串中测试是否匹配的 RegExp 方法,它返回 true 或 false。 |
    | [`match`] | 一个在字符串中执行查找匹配的 String 方法,它返回一个数组,在未匹配到时会返回 null。 |
    | [`matchAll`]。 |
    | [`search`] | 一个在字符串中测试匹配的 String 方法,它返回匹配到的位置索引,或者在失败时返回 -1。 |
    | [`replace`]| 一个在字符串中执行查找匹配的 String 方法,并且使用替换字符串替换掉匹配到的子字符串。 |
    | [`split`] | 一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的 `String` 方法。 |
    
    

    用法规则

    1.以某个字符开头
     let reg = new RegExp(/^a/)
     let string = 'abcdefg'
     console.log(reg.test(string));
    
    2. 匹配A或者B 
     x|y
     let reg = new RegExp(/^a|b)
     let string = 'bcdefg'
     console.log(reg.test(string));
    
    3. 匹配某个范围的字符
    [a-z]  
    
    4. 整体匹配某一串字符串
    [(?:x)] 
    匹配x但是不记住x ,非捕获括号  
    可以把括号中的所有字符看做整体,进行匹配
    
    5. 匹配某个字符当他后面或者前面是某种字符--先行断言 后行断言
    [x(?=y)]    
    匹配'x'仅仅当'x'后面跟着'y'.这种叫做先行断言。
    [(?<=y)]
    匹配'x'仅当'x'前面是'y'.这种叫做后行断言。
    
    6. 匹配某个字符他的前面或者后面不是某种字符 ---否定查找
    [x(?!y)]
    仅仅当'x'后面不跟着'y'时匹配'x',这被称为正向否定查找。
    [(?<!y)x]
    仅仅当'x'前面不是'y'时匹配'x',这被称为反向否定查找。
    
    
    
    

    字符簇

    [a-z] // 匹配所有的小写字母 
    [A-Z] // 匹配所有的大写字母 
    [a-zA-Z] // 匹配所有的字母 
    [0-9] // 匹配所有的数字 
    [0-9\.\-] // 匹配所有的数字,句号和减号 dddddd
    [ \f\r\t\n] // 匹配所有的白字符
    [\u4e00-\u9fa5]//匹配汉汉字
    
    注意: 字符簇只匹配某个范围内的一个字符 如果要匹配读个此类型的字符需要配合其他的表达式
    

    相关文章

      网友评论

          本文标题:常用正则方法

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