将每个数字换行并在零前加上最多 X 位数字

Wrap each digitand prepend zeros up to X digits

本文关键字:数字 换行      更新时间:2023-09-26

是否有可能在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>

所以结果应该是一个四位数的数字。

这里有一个棘手的版本:

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'));
});

首先,让它看起来像一个字符串并填充它......

   function pad(number, length) {      
        var str = '' + number;
        while (str.length < length) {
            str = '0' + str;
        }       
        return str;
    }

然后,您可以迭代它并围绕每个数字添加跨度。然后将标记写出为父元素的.html。

一种方法是将数字转换为字符串并预附加 0,直到我们达到所需的长度。

因此,如果您想要X位数:

var strNb = "" + nb;
while (strNb.length < X){
  strNb = "0" + strNb
}
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>");
}