Как я могу отформатировать целое число определенной длины в JavaScript? - PullRequest
32 голосов
/ 15 июля 2009

У меня есть номер в Javascript, который, как я знаю, меньше 10000 и тоже неотрицательный. Я хочу отобразить его в виде четырехзначного числа с начальными нулями. Есть ли что-нибудь более элегантное, чем следующее?

if(num<10) num="000"+num;
else if(num<100) num="00"+num;
else if(num<1000) num="0"+num;

Мне нужно что-то, что встроено в Javascript, но я не могу ничего найти.

Ответы [ 13 ]

0 голосов
/ 30 июля 2014

Я столкнулся с такой же проблемой и нашел компактный способ ее решения. Если бы мне пришлось использовать это несколько раз в моем коде или если бы я делал это для более чем четырех цифр, я бы использовал одно из других предложенных решений, но этот способ позволяет мне поместить все это в выражение:

((x<10)?"000": (x<100)?"00": (x<1000)?"0": "") + x

Это на самом деле то же самое, что и ваш код, но с использованием тернарного оператора вместо операторов if-else (и перемещения «+ x», который всегда будет частью выражения, за пределы условного кода). 1004 *

0 голосов
/ 04 октября 2011

Цикл while должен сделать это достаточно просто.

function formatLength(a) {
    var num = document.getElementById(a)
    while (num.value.length < 4) {
        num.value = '0' + num.value
    }
}

Это будет проходить до тех пор, пока длина значения num не достигнет 4 цифр (при условии, что вы передали идентификатор элемента числа в качестве аргумента)

0 голосов
/ 15 июля 2009

Вы можете сходить с ума с помощью таких методов:

function PadDigits(input, totalDigits) 
{ 
    var result = input;
    if (totalDigits > input.length) 
    { 
        for (i=0; i < (totalDigits - input.length); i++) 
        { 
            result = '0' + result; 
        } 
    } 
    return result;
} 

Но это не облегчит жизнь. В C # есть метод, такой как PadLeft и PadRight в классе String, к сожалению, Javascript не имеет этой встроенной функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...