zoukankan      html  css  js  c++  java
  • 正则案例

     1、正则截取两个字符串间的值

      let str="sdfsdf:12545.sdafs.dfsdf:98794564.sdfdf:";
            let getStr = str => {
                let reg = /:(.+?)./g;
                let arr = str.match(reg);
                let newArr =[]
                for (let i =0;i<arr.length;i++) {
                    newArr.push(arr[i].replace(/(:|.)/g, ''))
                }
                return newArr;
            }
            console.log(getStr(str)) // ["12545", "98794564"]
    View Code

     优化后

        let str="sdfsdf:12545.sdafs.dfsdf:98794564.sdfdf:";
            let getStr = str => {
                let reg = /:(.+?)./g;
                let arr = str.match(reg);
                return arr.join(',').replace(/(:|.)/g, '');
            }
            console.log(getStr(str))
    View Code

     2、数字格式化

    let num = '1234567890'
    let format = num.replace(/B(?=(d{3})+(?!d))/g, ',')
    
    console.log(format) // 1,234,567,890
    /**
    */B(?=(d{3})+(?!d))/g:正则匹配边界B,边界后面必须跟着(d{3})+(?!d);
    *(d{3})+:必须是1个或多个的3个连续数字;
    *(?!d):第2步中的3个数字不允许后面跟着数字;
    *(d{3})+(?!d):所以匹配的边界后面必须跟着3*n(n>=1)的数字。
    **/
    View Code

     3、金额大小写转化

    let arr  = ['零', '壹', '贰', '叁', '肆', '伍', '陆','柒', '捌', '玖', '拾'];
    
    let str ='112';
    str = str.replace(/d/g, function () {
        return arr[arguments[0]];
    });
        /*
         * 第一次执行:大正则捕获的是2,返回的是ary[2] --> '贰'
         * 第二次执行:大正则捕获的是0,返回的是ary[0] --> '零'
         * .....
         */
    console.log(str);
    View Code
  • 相关阅读:
    数组方法的扩展,如map,reduce,fliter,forEach方法
    设计模式总体概括
    centos yum 安装 tomcat
    idea springboot 打包 war
    idea使用tomcat运行maven打包的war
    CentOS 7 用 yum 安装 Nginx
    CentOS更换yum源
    城市代码表mysql
    更改idea启动内存信息
    (三)多表代码生成
  • 原文地址:https://www.cnblogs.com/vhen/p/7865275.html
Copyright © 2011-2022 走看看