Me lo contaron y lo olvidé, lo leí y lo entendí, lo hice y lo aprendí.





martes, 3 de enero de 2017

[JavaScript] Llenar cadena de ceros (o cualquier caracter) a la izquierda

En ocasiones se requiere formatear a una cadena con una longitud estática, rellenando con un carácter (Comúnmente ceros 0s) a la izquierda las posiciones faltantes; por ejemplo, si se requiere tener una cadena de longitud 6 y se tiene la cadena "123", será necesario convertirla a "000123".

JavaScript no cuenta con una función nativa para "rellenar" una cadena con un carácter específico para que ésta tenga una longitud determinada; y las mayorías de las soluciones a este problema consiste en bucles y condicionales que se extienden más allá de la simpleza del problema. La solución que propongo en esta ocasión consiste en un método que genera una cadena tal que, al concatenarla con el texto que ya se tiene, se obtenga un "String" con la longitud determinada.

La solución sería la siguiente:


caracter.repeat(longitud- String(cadena).length).concat(cadena);



O, expresado a una función:


function llenarCadena(cadena,longitud,caracter)
{
        //Siendo "cadena" el texto a completar
        //"longitud" el largo de la cadena deseada
        //"caracter" el símbolo con el cual se llenarán los espacios faltantes
return caracter.repeat(longitud- String(cadena).length).concat(cadena);
}



La lógica es sencilla; como expliqué arriba, consiste en crear una cadena de caracteres (caracter.repeat) con la longitud necesaria (longitud- String(cadena).length), tal que al concatenarla con la cadena original, nos dé un texto con la longitud deseada.
En pocas palabras, usando el ejemplo inicial; la parte del código "caracter.repeat(longitud- String(cadena).length)" generará la cadena "000" el cual, al concatenarse con la cadena original, dará un texto de longitud 6.

Pues bien, sería todo. Espero les sea de utilidad

No hay comentarios:

Publicar un comentario