Come posso inserire un carattere dopo ogni n caratteri in javascript?

Ho una stringa: “La volpe marrone veloce salta sopra i cani pigri”.

Voglio usare javascript (possibilmente con jQuery) per inserire un carattere ogni n caratteri. Ad esempio voglio chiamare:

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.$" 

L’objective è utilizzare questa funzione per inserire e timore in stringhe lunghe per consentire loro di avvolgere. Forse qualcuno sa di un modo migliore?

 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." 

Con regex

 "The quick brown fox jumps over the lazy dogs.".replace(/(.{5})/g,"$1$") The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs.$ 

Saluti,

 var str="ABCDEFGHIJKLMNOPQR"; function formatStr(str, n) { var a = [], start=0; while(start 
 let s = 'The quick brown fox jumps over the lazy dogs.'; s.split('').reduce((a, e, i)=> a + e + (i % 5 === 4 ? '$' : ''), ''); 

Spiega: split (”) trasforma una stringa in una matrice. Ora vogliamo riportare l’array su una singola stringa. Ridurre è perfetto in questo scenario. La funzione di riduzione dell’array richiede 3 parametri, il primo è l’accumulatore, il secondo è l’elemento iterato e il terzo è l’indice. Poiché l’indice dell’array è basato su 0, da inserire dopo il quinto, guardiamo all’indice i% 5 === 4.

A volte vuoi anche iniziare a inserire caratteri dalla fine della stringa all’inizio. In tal caso ciò può fare:

 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); } 

Risultato:

 > addItemEvery("The quick brown fox jumps over the lazy dogs.", '$', 5) > "The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs." 

Mantienilo semplice

  var str = "123456789"; var chuncks = str.match(/.{1,3}/g); var new_value = chuncks.join("-"); //returns 123-456-789