正则表达式练习

javascript 复制代码
(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)


})()
相关推荐
水木流年追梦8 小时前
大模型入门-RL基础
开发语言·python·算法·leetcode·正则表达式
IT大白鼠1 天前
2019年Cloudflare全球宕机事件技术分析:正则表达式回溯失控与互联网基础设施脆弱性研究
运维·正则表达式·去中心化
XMYX-03 天前
33 - Go 文本模板 template:从入门到原理深挖
golang·正则表达式
XMYX-03 天前
32 - Go 正则表达式:从匹配字符串到理解 RE2 引擎
golang·正则表达式
程序员榴莲4 天前
Python 正则表达式入门:从匹配手机号到提取文本内容
python·正则表达式
红茶要加冰6 天前
七、正则表达式
linux·运维·正则表达式·shell
Pocker_Spades_A6 天前
Python快速入门专业版(五十八)——正则表达式(re):爬虫文本提取利器(从语法到实战)
爬虫·python·正则表达式
红茶要加冰6 天前
九、文本处理三剑客——sed
linux·运维·服务器·正则表达式·shell
Bug-制造者7 天前
正则表达式 vs Shell通配符:彻底分清,告别命令行踩坑
linux·正则表达式
剑神一笑8 天前
Linux top 命令深度解析:进程监控的性能优化实战
linux·运维·正则表达式