string - with - lpad javascript
Angular2 o TypeScript izquierda rellenando una cadena con ceros (5)
Tengo un número, digamos 9. Pero lo necesito como Cadena "09".
Sé que puedo escribir mi propia lógica. Pero estoy buscando una función util implícita que pueda rellenarla.
Estoy usando angular2 con TypeScript. Buscando algo como this .
Solo similar como java
String.format("%010d", Integer.parseInt(mystring));
Con el último mecanografiado, puedes hacer:
let myStr:string = padLeft(''123'', ''0'', 6); // ''000123''
padLeft(text:string, padChar:string, size:number): string {
return (String(padChar).repeat(size) + text).substr( (size * -1), size) ;
}
Desde Angular v4 hay DecimalPipe, que permite agregar fácilmente ceros iniciales: https://angular.io/api/common/DecimalPipe
En tu html, puedes usar algo como:
{{ myNumber | number:''2.0'' }}
Puedes crear tu propia función para esto. Para formatear el número primero tendrá que convertirlo en una cadena.
function pad(num, size) {
let s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
Mecanografiado
pad(num:number, size:number): string {
let s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
Edit: Hay un par de formas mejores y más eficaces para hacer esto. Consulte la discusión en esta respuesta: https://.com/a/9744576/1734678 (Recomiendo leer la mayoría de las respuestas enviadas si tiene tiempo)
Actualización: ECMAScript 2017 ahora tiene soporte para el relleno de cadenas
str.padStart(targetLength [, padString])
str.padEnd(targetLength [, padString])
Consulte https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
Puedes usar una de las siguientes plantillas en HTML
{{ ("00" + 9).slice(-2) }} // 09
O
{{ 9 | number: ''2.'' }} // 09
O en el archivo de código ts componente
var x = ("00" + 9).slice(-2);
public padIntegerLeftWithZeros(rawInteger: number, numberOfDigits: number): string {
let paddedInteger: string = rawInteger + '''';
while (paddedInteger.length < numberOfDigits) {
paddedInteger = ''0'' + paddedInteger;
}
return paddedInteger;
}
public zeroPadIntegerLeft3Digits(rawInteger: number): string {
return this.padIntegerLeftWithZeros(rawInteger, 3);
}