是否有可能在Javascript中包装每个字符,如果它少于X个数字,则前置零?
我得到了什么:
var votes = 2;
//or
var votes = 123;
//or
var votes = 4321;
应该是什么样的:
<span>0</span><span>0</span><span>0</span><span>2</span>
//or
<span>0</span><span>1</span><span>2</span><span>3</span>
//or
<span>4</span><span>3</span><span>2</span><span>1</span>
所以结果应该是一个四位数的数字。
答案 0 :(得分:5)
这是一个棘手的版本:
var votes = 123;
("0000" + votes).slice(-4); /* 0123 */
因此,要将每个数字包装在<span>
中,您可以使用$.map
获取每个数字并将其包装到自己的元素中,就像在此示例中一样:http://jsfiddle.net/cZAWj/
var votes = 973;
$.map(("0000" + votes).slice(-4), function(digit) {
$('<span/>', { text : digit }).appendTo($('body'));
});
答案 1 :(得分:3)
首先,让它看起来像一个字符串并填充它......
function pad(number, length) {
var str = '' + number;
while (str.length < length) {
str = '0' + str;
}
return str;
}
然后你可以迭代它并在每个数字周围添加一个范围。然后将标记写为父元素的.html。
答案 2 :(得分:1)
一种方法是将数字转换为字符串并预先附加0直到达到所需的长度。
所以,如果你想要X
个数字:
var strNb = "" + nb;
while (strNb.length < X){
strNb = "0" + strNb
}
答案 3 :(得分:0)
function formatNumber(d, x) {
var l = String(d).length;
return (l<x?(Array(x-l).join('0') + d):String(d)).replace(/\d/g,"<span>$&</span>");
}