숫자를 두 자리 숫자로 형식화하고 싶습니다. 0
– 9
가 전달 될 때 문제가 발생 하므로 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);