tipos - ¿Cómo puedo insertar un carácter después de cada n caracteres en javascript?
split javascript (6)
Tengo una cuerda: "El zorro marrón rápido salta sobre los perros perezosos".
Quiero usar javascript (posiblemente con jQuery) para insertar un caracter cada n caracteres. Por ejemplo, quiero llamar:
var s = "The quick brown fox jumps over the lazy dogs.";
var new_s = UpdateString("$",5);
// new_s should equal "The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs.$"
El objetivo es usar esta función para insertar ­ en cadenas largas para permitir que se envuelvan. Tal vez alguien sabe de una mejor manera?
Con expresiones regulares
"The quick brown fox jumps over the lazy dogs.".replace(/(.{5})/g,"$1$")
The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs.$
aclamaciones,
En algún momento también desea comenzar a insertar caracteres desde el final de la cadena hasta el comienzo. En ese caso, esto puede hacer:
function insert_spaces(string, space_every_nr, reverse, character) {
var insert_string = string.toString();
if (reverse == true) {
var insert_string = string.toString();
var length_of_string=string.length;
var count=0;
for (var i = 0; i < string.length+count; i+=space_every_nr) {
insert_string=insert_string.substring(0,i)+character+insert_string.substring(i ,(string.length+count));
count++;
}
return insert_string
} else if(reverse ==false) {
var count=0;
var j=0;
for (var i = string.length; i > 0; i -= space_every_nr) {
insert_string=insert_string.substring(0,i)+character+insert_string.substring(i ,(string.length+count));
count++;
}
return insert_string;
}
}
function addItemEvery (str, item, every){
for(let i = 0; i < str.length; i++){
if(!(i % (every + 1))){
str = str.substring(0, i) + item + str.substring(i);
}
}
return str.substring(1);
}
Resultado:
> addItemEvery("The quick brown fox jumps over the lazy dogs.", ''$'', 5)
> "The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs."
function chunk(str, n) {
var ret = [];
var i;
var len;
for(i = 0, len = str.length; i < len; i += n) {
ret.push(str.substr(i, n))
}
return ret
};
chunk("The quick brown fox jumps over the lazy dogs.", 5).join(''$'');
// "The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs."
let s = ''The quick brown fox jumps over the lazy dogs.'';
s.split('''').reduce((a, e, i)=> a + e + (i % 5 === 4 ? ''$'' : ''''), '''');
Explique: split ('''') convierte una cadena en una matriz. Ahora queremos volver la matriz a una sola cadena. Reducir es perfecto en este escenario. La función de reducción de matriz toma 3 parámetros, primero es el acumulador, el segundo es el elemento iterado y el tercero es el índice. Dado que el índice de matriz está basado en 0, para insertar después del 5, estamos viendo el índice i% 5 === 4.
var str="ABCDEFGHIJKLMNOPQR";
function formatStr(str, n) {
var a = [], start=0;
while(start<str.length) {
a.push(str.slice(start, start+n));
start+=n;
}
console.log(a.join(" "));
}
formatStr(str,3);