Javascript将冒号附加到未知长度的数字?

时间:2014-05-26 15:15:47

标签: javascript

我有一个号码让我们说

305060

我想把:放在-2和-4位置,所以我最终得到了

30:50:60

如果我输入5006070,我最终会得到500:60:70

我似乎无法弄清楚如何做到这一点。

4 个答案:

答案 0 :(得分:2)

使用此代码:

var number = 123456789;
var formatted = number.toString().replace(/^(\d+)(\d{2})(\d{2})/, '$1:$2:$3');
alert(formatted);

演示:http://jsfiddle.net/U4J6n/

如果number是字符串,则可以从代码中删除.toString()方法。

答案 1 :(得分:1)

您可以使用正则表达式捕获两个最后两个数字组

/(\d{2})(\d{2})$/

所以它是

var x = 305060;  
x = x.toString().replace(/(\d{2})(\d{2})$/, ":$1:$2"); // 30:50:60

var x2 = 5006070;
x2 = x2.toString().replace(/(\d{2})(\d{2})$/, ":$1:$2"); // 500:60:70

FIDDLE

答案 2 :(得分:0)

假设n是字符串的长度,首先要取0到n-4的数字,然后是n-4到n-2,最后是n-2到n,所以只需使用子字符串或切片之一得到解决方案。

如果你想使用子串,那么它将是

var num="305060";
var length=num.length;
var ans=num.substring(0,length-4)+":"+num.substring(length-4,length-2)+":"+num.substring(length-2,length);
alert(ans);

如果你想使用切片

var num="305060";
    var length=num.length;
    var ans=num.slice(0,length-4)+":"+num.slice(length-4,length-2)+":"+num.slice(length-2,length);
    alert(ans);

substr是javascript中的另一个函数,可以帮助您获得解决方案

var num="305060";
    var length=num.length;
    var ans=num.substr(0,length-4)+":"+num.substr(length-4,2)+":"+num.substr(length-2,2);
    alert(ans);

答案 3 :(得分:0)

您可以使用String.prototype.slice

的Javascript

var x = 305060,
    y = x.toString(),
    z = [y.slice(0, -4), y.slice(-4, -2), y.slice(-2)].join(':');

console.log(z);

输出

30:50:60

jsFiddle