[javascript] 0을 한 자리 숫자 앞에 추가하여 숫자 서식을 지정하는 방법은 무엇입니까?

숫자를 두 자리 숫자로 형식화하고 싶습니다. 09가 전달 될 때 문제가 발생 하므로 00– 로 포맷해야합니다 09.

JavaScript에 숫자 포맷터가 있습니까?



답변

내가 찾은 가장 좋은 방법은 다음과 같습니다.

(이 간단한 버전은 양의 정수에만 작동합니다.)

var myNumber = 7;
var formattedNumber = ("0" + myNumber).slice(-2);
console.log(formattedNumber);

십진수의 경우이 코드를 사용할 수 있습니다 (약간 느슨합니다).

var myNumber = 7.5;
var dec = myNumber - Math.floor(myNumber);
myNumber = myNumber - dec;
var formattedNumber = ("0" + myNumber).slice(-2) + dec.toString().substr(1);
console.log(formattedNumber);

마지막으로 음수 가능성을 처리해야하는 경우 부호를 저장하고 숫자의 절대 값에 서식을 적용한 다음 사실 뒤에 부호를 다시 적용하는 것이 가장 좋습니다. 이 방법은 숫자를 총 2 자리로 제한하지 않습니다. 대신 숫자를 소수점 왼쪽 (정수 부분)으로 만 제한합니다. (기호를 결정하는 줄은 여기에 있습니다 ).

var myNumber = -7.2345;
var sign = myNumber?myNumber<0?-1:1:0;
myNumber = myNumber * sign + ''; // poor man's absolute value
var dec = myNumber.match(/\.\d+$/);
var int = myNumber.match(/^[^\.]+/);

var formattedNumber = (sign < 0 ? '-' : '') + ("0" + int).slice(-2) + (dec !== null ? dec : '');
console.log(formattedNumber);


답변

숫자가 9보다 큰 경우 숫자를 문자열 (일관성)로 변환하십시오. 그렇지 않으면 0을 추가하십시오.

function n(n){
    return n > 9 ? "" + n: "0" + n;
}

n( 9); //Returns "09"
n(10); //Returns "10"
n(999);//Returns "999"


답변

원하는 수의 toLocaleString () 메소드를 사용하십시오. 따라서 숫자 6의 경우 아래와 같이 원하는 결과를 얻을 수 있습니다.

(6).toLocaleString('en-US', {minimumIntegerDigits: 2, useGrouping:false})

문자열 ’06’을 생성합니다.


답변

다음은 일반적으로 사용하는 간단한 숫자 패딩 기능입니다. 어느 정도의 패딩을 허용합니다.

function leftPad(number, targetLength) {
    var output = number + '';
    while (output.length < targetLength) {
        output = '0' + output;
    }
    return output;
}

예 :

leftPad(1, 2) // 01
leftPad(10, 2) // 10
leftPad(100, 2) // 100
leftPad(1, 3) // 001
leftPad(1, 8) // 00000001


답변

모든 최신 브라우저에서 사용할 수 있습니다

numberStr.padStart(2, "0");

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

function zeroPad(numberStr) {
  return numberStr.padStart(2, "0");
}

var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

numbers.forEach(
  function(num) {
    var numString = num.toString();

    var paddedNum = zeroPad(numString);

    console.log(paddedNum);
  }
);


답변

@Lifehack의 답변은 매우 유용했습니다. 양수를 위해 한 줄로 할 수 있다고 생각합니다.

 String(input).padStart(2, '0');


답변

("0" + (date.getMonth() + 1)).slice(-2);
("0" + (date.getDay())).slice(-2);