• 正则表达式练习


    (function() {
    
        //#region   定义正则表达式
        // const reg = /前端/g;
        // ------------test-------------
        // const res = reg.test("学java,找黑马");
        // console.log(res)
        // ------------exec--------------
        // const res = reg.exec("学好前端,找黑马");
        // console.log(res);
        // ------------replace--------------
        // const str = "学前端,找黑马";
        // const res = str.replace(reg, "java");
        // console.log(res);
        // ------------match--------------
        // const str = "学前端,找黑马,前端就业前景好";
        // const res = str.match(reg);
        // console.log(res);
        //#endregion
        //#region 元字符
        // *:表示0次或多次
        // const reg = /^a*$/;
        // console.log(reg.test("a"))
        // console.log(reg.test(""))
        // console.log(reg.test("aaaaaa"))
        // console.log(reg.test("abbbb "))
        // +:表示1次或多次
        // const reg = /^a+$/;
        // console.log(reg.test("a"))
        // console.log(reg.test(""))
        // console.log(reg.test("aaaaaa"))
        // console.log(reg.test("abbbb "))
        // ?:表示0次或1次
        // const reg = /^a?$/;
        // console.log(reg.test("a"))
        // console.log(reg.test(""))
        // console.log(reg.test("aaaaaa"))
        // console.log(reg.test("abbbb "))
        // {n}:表示只有n次
        // const reg = /^a{3}$/;
        // console.log(reg.test("aaa"))
        // console.log(reg.test(""))
        // console.log(reg.test("aaaaaa"))
        // console.log(reg.test("abbbb "))
        // {n,}:表示大于等于n次
        // const reg = /^a{3,}$/;
        // console.log(reg.test("aaa"))
        // console.log(reg.test(""))
        // console.log(reg.test("aaaaaa"))
        // console.log(reg.test("abbbb "))
        // {n,m}:n-m次
        // const reg = /^a{3,5}$/;
        // console.log(reg.test("aaa"))
        // console.log(reg.test(""))
        // console.log(reg.test("aaaaaa"))
        // console.log(reg.test("aaaa"))
        //#endregion
        //#region 元字符-字符类
        //[]
        // const reg = /[abc]/; //匹配abc中的任意一个
        // const res = reg.test('abc'); //true
        // console.log(res)
        // ^取反
        // const reg = /[^0-9]/;
        // console.log(reg.test("aaa"));
        // console.log(reg.test("111"));
        // console.log(reg.test("aa34a"));
    
    
        //#endregion
        // \d 数字等价[0-9]
        /**
        \d 一位数字
        *
        \d{2} 2位数字
        \d{2,4} 2-4位数字
        \d{2,} 大于两位的数字
        \d+ 等价于\d{1,}
        \d* 等价于\d{0,}
        \d? 等价于\d{0,1}
        */
        // const reg1 = /^\d{2,}$/
        // console.log(reg1.test('1'))
        // 校验手机号/座机号
        // const reg = /^1\d{10}$/;
        // console.log(reg.test('18386223456'))
    
        // 邮箱验证
        /**
        [0-9a-z_] 可以是0-9的数字,也可以是a-z的字母,也可以是_,-代表区间
        [ABCD1234.] 可以是ABCD1234.其中的任意一项,在中括号中。就是.的意思
        [^.]当^出现在中括号里的时候,表示取反,这句的意思是 除了。以外的
        **/
        // const reg1 = /^[0-9a-z_]{2,20}@[a-z0-9]{1,10}[.a-z0-9]+[^.]+$/i
        // console.log(reg1.test('245094530@163.com.cn'))
    
        // 正则当中的简写语法
        /**
        \s 空白符包括换行
        \S 非空白,与上面相反
        \n 换行
        \w[a-zA-Z0-9_]
        \W [^a-zA-Z0-9_]
        任意字符(除了\n\r)
        */
    
        // 身份证号验证
        // const reg1 = /^(\d{15}|\d{17}[0-9X]{1})$/i
        // console.log(reg1.test('32099919900101321X'))
        // 数字转千分位
        // const money = 99999999
        // console.log(money.toLocaleString())
        // 校验名字必须位中文
        // const reg1 = /^[\u4e00-\u9fa5]{2,5}$/
        // console.log(reg1.test("中文345454"))
        // 字符串模板
        // const text = '{name}说,今天天气{desc}'
        // const obj = {
        //     name: '张三',
        //     desc: '真好'
        // }
        // console.log(text.replace(/\{(.*?)\}/g, (result, group1) => {
        //     return obj[group1]
        // }))
        //去掉多余的空格
        // const text = '  你  好  ';
        // console.log('---' + text.replace(/\s/g, '') + '---')
    
        // 数据格式化
        const text = `xxxx;张三:15555555555,2222zddd333;xxxx;xxxx;李四:13333333333,2222zddd333;xxxx`
        const arr = []
        text.replace(/;([\u4e00-\u9fa5]+):(1\d{10}),([0-9a-z]+);/g, (result, group1, group2, group3) => {
            console.log(group1)
            arr.push({
                name: group1,
                phone: group2,
                orderId: group3
            })
    
        })
        console.log(arr)
    
    
    })()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144

    在这里插入图片描述

  • 相关阅读:
    你的知识库能提高工作效率的7个原因
    贪心算法(算法竞赛、蓝桥杯)--糖果传递
    手机也能搭建个人博客?安卓Termux+Hexo搭建属于你自己的博客网站
    java 数据结构 ArrayList源码底层 LinkedList 底层源码 迭代器底层
    修改linux下tomcat使用的jdk
    人工智能前沿——2022年最流行的十大AI技术
    【Serverless】快速集成云函数HarmonyOS
    猿创征文 | vue设计一个高扩展性能的路由和实现菜单与路由相结合
    轮胎企业RFID生产线管理(MES系统)设计应用方案
    Power BI 的 各种限制 和 DataFlow模式
  • 原文地址:https://blog.csdn.net/weixin_45932157/article/details/132639695