正则案例

 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

 

转载于:https://www.cnblogs.com/vhen/p/7865275.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值