美文网首页
javascript正则表达式全集

javascript正则表达式全集

作者: Amy_yqh | 来源:发表于2019-11-15 11:03 被阅读0次

    正则表达式:

    1.创建方式:

      (1)构造函数的形式:var reg = new RegExp('aaa')
      (2)字面量的形式:var reg = /a/
    
    1. /./ 表示除了换行符(\r,\n)以外的任意字符
        var reg = /./
        console.log(reg.test('abc'))//true
        console.log(reg.test('\r'))//false
        注意:
        如果要匹配点,不能直接写.,可以使用转义符/\./或者中括号[.]
    

    3./\d/匹配任意数字:

            var num = /\d/
            console.log(num.test('dd'))//false
            console.log(num.test('123'))//true
    

    4./\D/匹配非数字

            var reg3 = /\D/
            console.log(reg3.test('34'))// false
            console.log(reg3.test('34dfd'))// true
    

    5./\w/匹配数字,字母,下划线任意字符

            var reg4 =/\w/
            console.log(reg4.test('14'))// true
            console.log(reg4.test('dsfsd'))//true
            console.log(reg4.test('_'))//true
    

    6./\W/匹配非数字,字母,下划线任意字符

            var reg5=/\W/
            console.log(reg5.test('.'))// true
            console.log(reg5.test('333'))// false
    

    7./s/匹配空字符 /\n/,/\r/,/t/,/ /

            var reg6 = /\s/
            console.log(reg6.test('\n'))//true
            console.log(reg6.test('\r'))//true
            console.log(reg6.test('\t'))//true
            console.log(reg6.test('sdf sdf '))//true
    

    7./S/匹配非空字符 与/s/取反

    8.\ 转义符

        var reg7 = /\// // 匹配一个正斜杠
        或者:var reg7 =/[/]/
        console.log(reg7.test('/')) // true
        var reg8 = /\\/     //匹配一个反斜杠
        console.log(reg8.test('\\')) //true 字符串'\\'表示的是\反斜杠
        var reg9 = /\./ // 匹配一个点
        console.log(reg8.test('sdfd.')) //true 
    

    9.字符集合[]

            var reg = /[123abc]/  //匹配123abc的任意字符
            var reg = /[0-9]/     // 匹配0-9的任意字符
            var reg = /[a-z]/     // 匹配小写字母a-z
            var reg = /[A-Z]/     // 匹配大写写字母A-Z
            var reg = /[a-zA-Z]/     // 匹配大写字母A-Z或a-z任意字符
            var reg = /0-9a-z/    // 匹配0-9或a-z任意字符  
            // [^123] // 匹配非123
            var reg = /[^123]/
            console.log(reg.test('12'))     //false
            console.log(reg.test('1'))      //false
            console.log(reg.test('119'))    //true
    

    * 表示0次或多次

            var reg = /\d*/
            console.log(reg.test('28'))//true
    

    边界

           ^字符串最左边
           $字符串最右边
               var reg = /^abc/
               console.log(reg.test('abc123'))// true
               console.log(reg.test('123abc'))// false
               var reg = /abc$/;
               console.log(reg.test('abc123'))// false
               console.log(reg.test('123abc'))// true
               console.log(reg.test('123bc'))// false
    
               var reg = /^abc&/;//以abc开头并且以abc结尾
               console.log(reg.test('abc'))//true
               console.log(reg.test('123abc'))//false
    
               // 简单判断手机号码
               var reg = /^1\d\d\d\d\d\d\d\d\d\d$/
               var reg = /^1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/
    

    量词

    
            (1) * 出现0次或多次
            var reg = /\d*/
            console.log(reg.test('abc123'))// true
            (2) + 出现1次或多次
            var reg = /1\d+/
            console.log(reg.test('11'))// true
            console.log(reg.test('1'))// false
            (3) ? 出现0次或1次
            var reg = /1\d+/
            console.log(reg.test('11'))// true
            console.log(reg.test('1'))// true
            (4) {n} 出现n次
            var reg = /123{3}}/  // 3出现3次
            console.log(reg.test('12333'))// true
            console.log(reg.test('123'))// false
            var reg = /(123){3}}/   123 出现三次
            console.log(reg.test('123123123'))// true
            console.log(reg.test('123123'))// false
            (5) {n,} 至少出现n次
            var reg = /123{3,}}/   123 至少出现三次
            console.log(reg.test('123123123'))// true
            console.log(reg.test('123123123123'))// true
            console.log(reg.test('123123'))// false
            (6) {n,m}出现至m次
            var reg = /123{3,5}}/   123 至少出现三次
            console.log(reg.test('123123123'))// true
            console.log(reg.test('123123123123'))// true
            console.log(reg.test('123123'))// false
    

    | 或

                var reg = /abc|123/     // 匹配abc或者123
                console.log(reg.test('123'))//true
                console.log(reg.test('abc'))//true
                console.log(reg.test('sdfdfabc'))//true
                
                var reg = /^(abc|123)$/     // 匹配abc开头或者123结尾
                console.log(reg.test('sdfdfabc'))//true
                console.log(reg.test('123sdfdf'))//true
    

    () 分组

                var reg = /(\d{3,4})-(\d{7,8})/     // 匹配手机号码
                console.log(reg.test('0775-12346789'))//true
                var arr = '0775-12346789'.match(reg)
                arr[0] // 全部
                arr[1] // 第一组:区号:0775
                arr[2] // 第二组:号码12346789
    
          urlParam() {
            let url = 'https://www.iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.d9df05512&cid=2706'
            const param = {}
            url.replace(/([^&=?]+)=([^&]+)/g, (m, $1, $2) => {
                debugger
                param[$1] = $2
              }
            )
            return param
          },
    匹配把url的参数提取成一个对象
    

    15.g 匹配全局

        var aa = '[Object Array]'
        aa.replace(/\[Object |\]/g,'') //"Array"
    

    案例

    1.去除字符串前后空格

    let str = '   ffdsdf  df    '
    str .replace(/^( ){1,}|( ){1,}$/g,'') // ffdsdf  df
    

    相关文章

      网友评论

          本文标题:javascript正则表达式全集

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