如何在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。