padleft - padstart javascript
Formato de un nĂºmero, exactamente dos en longitud? (9)
Tengo un número entero inferior a 100 y se imprime en una página HTML con JavaScript. ¿Cómo formateo el número entero para que tenga exactamente dos dígitos? Por ejemplo:
01
02
03
...
09
10
11
12
...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
String(number).padStart(2, ''0'')
Yo uso expresiones regulares para formatear mi tiempo como
const str = ''12: 5 ''
const final = str.replace (/ / d + / g, (match, offset, string) => match <10? ''0'' + match: match)
salida: 12:05
Normalmente uso esta función.
function pad(n, len) {
let l = Math.floor(len)
let sn = '''' + n
let snl = sn.length
if(snl >= l) return sn
return ''0''.repeat(l - snl) + sn
}
Ejemplo de uso
pad(1, 1) // ==> returns ''1'' (string type)
pad(384, 5) // ==> returns ''00384''
pad(384, 4.5)// ==> returns ''0384''
pad(5555, 2) // ==> returns ''5555''
Solo use la siguiente función corta para obtener el resultado que necesita:
function pad2(number) {
return (number < 10 ? ''0'' : '''') + number
}
Una forma directa de rellenar un número a la izquierda en Javascript es calcular el número de dígitos por base de registro 10. Por ejemplo:
function padLeft(positiveInteger, totalDigits) {
var padding = "00000000000000";
var rounding = 1.000000000001;
var currentDigits = positiveInteger > 0 ? 1 + Math.floor(rounding * (Math.log(positiveInteger) / Math.LN10)) : 1;
return (padding + positiveInteger).substr(padding.length - (totalDigits - currentDigits));
}
El factor de redondeo soluciona el problema de que no hay forma de obtener un registro exacto de potencias de 10, por ejemplo Math.log (1000) / Math.LN10 == 2.9999999999999996 Por supuesto, uno debería agregar la validación de los parámetros.
// Return a string padded
function FormatMe(n) {
return (n<10) ? ''0''+n : n;
}
function pad(d) {
return (d < 10) ? ''0'' + d.toString() : d.toString();
}
pad(1); // 01
pad(9); // 09
pad(10); // 10
function padLeft(a, b) {
var l = (a + '''').length;
if (l >= b) {
return a + '''';
} else {
var arr = [];
for (var i = 0; i < b - l ;i++) {
arr.push(''0'');
}
arr.push(a);
return arr.join('''');
}
}
String("0" + x).slice(-2);
donde x
es tu numero