手机号、银行卡号格式化

9 篇文章 0 订阅

欲实现:
123456789123===》123 4567 8923;我的手机号;

function nFormat(num){
    var z=num.toString().split("");
    for(var i=0;i<z.length;i++){
        if(i===2||i==6){
            z[i]=z[i]+" ";
        }
    }
    return z.join("");
}

因为一般手机号位数和需要空格的地方都固定,所以这个题很好实现;
当然用正则也可以实现;

var a=6221550986411027;
function spacify(num){
    var z=num.toString().split("");
    for(var i=3;i<=z.length;i+=4){
            z[i]=z[i]+" ";
    }
    return z.join("");
}
console.log(spacify(a));

为了同时都能使用,我改写了一下:

var a=6221550986411027;
var b=17600353988;
function spacify(num,startN,space,sign){
    var z=num.toString().split("");
    for(var i=startN;i<z.length-space;i+=space){
            z[i]=z[i]+sign;
    }
    return z.join("");
}
console.log(spacify(a,3,4,","));
console.log(spacify(b,2,4," "));

结果是:

6221,5509,8641,1027
176 0035 3988

当然如果是要格式化货币或者金钱的话,也可以这样写

function spacify(num,startN,space,sign){
    var z=num.toString().split("");
    for(var i=z.length-1-space;i>=0;i-=space){
            z[i]=z[i]+sign;
    }
    return z.join("");
}

采取从后往前修改的策略,结果如下;

6,221,550,986,411,027

当然这样写也有问题,因为有的数字特别大,在转换的过程会丢失末尾数字,不过那是另外的问题了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liugang0605

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值