如何在JavaScript中每n个字符之后插入一个字符?

我有一个string:“快速的棕色狐狸跳过懒惰的狗。”

我想使用JavaScript(可能与jQuery)每n个字符插入一个字符。 比如我想打电话给:

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

目标是使用这个函数插入&害羞的长string,让他们包装。 也许有人知道更好的方法?

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

用正则expression式

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

干杯,

 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); 
 let s = 'The quick brown fox jumps over the lazy dogs.'; s.split('').reduce((a, e, i)=> a + e + (i % 5 === 4 ? '$' : ''), ''); 

解释: split('')将一个string转换成一个数组。 现在我们要把数组转换回单一的string。 减less在这种情况下是完美的。 Array的reduce函数需要3个参数,第一个是累加器,第二个是迭代元素,第三个是索引。 由于数组索引为0,所以在5之后插入,我们看索引i%5 === 4。