En este post te mostraré una función en JavaScript para agregar un carácter cada determinado número de caracteres.
Por ejemplo, agregar un guión cada 4 dígitos o cada 6 dígitos, es decir, rellenar la cadena agregando algo en el centro.
Explicación del algoritmo
Debemos recorrer la cadena e ir cortándola (con substring
) en porciones del paso, una vez que está cortada le agregamos el carácter.
Por ejemplo, si queremos agregar un guión cada 4 caracteres entonces extraemos pedazos de 4 caracteres en la cadena y al final agregamos el relleno.
Si la longitud de la cadena no es exacta, no importa, pues comprobamos si al cortar no iremos más allá de la longitud.
Función para agregar caracteres dentro de una cadena
Ahora veamos la función:
const agregarCaracter = (cadena, caracter, pasos) => {
let cadenaConCaracteres = "";
const longitudCadena = cadena.length;
for (let i = 0; i < longitudCadena; i += pasos) {
if (i + pasos < longitudCadena) {
cadenaConCaracteres += cadena.substring(i, i + pasos) + caracter;
} else {
cadenaConCaracteres += cadena.substring(i, longitudCadena);
}
}
return cadenaConCaracteres;
}
Tenemos una función que recibe, en orden, la cadena a la que se le agregará el carácter, el carácter que se agrega y finalmente cada cuánto colocar ese carácter.
Por ejemplo, si tenemos algo como AF00AFEE
y queremos poner guiones cada 2 letras, podemos hacer lo siguiente:
let clave = "AF00AFEE";
console.log(agregarCaracter(clave, "-", 2));
// => AF-00-AF-EE
De este modo podemos agregar cualquier carácter de relleno cada N caracteres dentro de una cadena en JavaScript.