Javascript 为每x个字符创建一个换行符
假设我有一个任意的字符串,它有x个字符。如何在字符串中为每个y字符插入换行符?我只想包装字符串,这样:Javascript 为每x个字符创建一个换行符,javascript,node.js,Javascript,Node.js,假设我有一个任意的字符串,它有x个字符。如何在字符串中为每个y字符插入换行符?我只想包装字符串,这样: xageaojigeaogjieaogjieaogjoajgoeajgoeagjaegaogjeaovc 变成 xageaoj igeaogj ieaogji eaogjoa jgoeajg oeagjae gaogjea ovc 如果换行计数为7。一种方法是在字符串上循环,然后推送到数组,如下所示: const wrap = (count, str) => { const le
xageaojigeaogjieaogjieaogjoajgoeajgoeagjaegaogjeaovc
变成
xageaoj
igeaogj
ieaogji
eaogjoa
jgoeajg
oeagjae
gaogjea
ovc
如果换行计数为7。一种方法是在字符串上循环,然后推送到数组,如下所示:
const wrap = (count, str) => {
const letters = [], ln = str.length;
for(let i = 0; i < ln; i++){
letters.push(str[i]);
if(i%count === 0)
letters.push('\n');
}
return letters.join('');
};
const wrap=(计数,str)=>{
常量字母=[],ln=str.length;
for(设i=0;i
但是有更好/更简单的方法吗?您可以使用正则表达式
。替换:
const input='xageaojigeaogjiegaogjoajgoeaggeagegaogjeaovc';
log(input.replace(/.{8}/g,$&\n')代码>另一种方法可能是与下一个用于切片的索引的指示器一起使用
const wrap=(str,count)=>{
var字母=[],
i=0;
而(i 日志(wrap('xageaojigeaogjiegaogjoajgoeaggeagegaogjeaovc',7))代码>您可以使用正则表达式匹配7个字符,并将其替换为后跟新行的匹配项
str.replace(/(.{7})/g, "$1\n")
或者在你的代码中
const wrap = (str, count) =>
str.replace(new RegExp(`(.{${count}})`, "g"), "$1\n")
RegExp
+Array.prototype.join
版本:
const wrap=(raw,n)=>raw.match(新的RegExp(`.{1,${n}}},'g')).join('\n'))
const source='xageaojiegaogjiegaogjiegaogjoajgoeaggjaegaogjeaovc'
log(wrap(source,7))
谢谢,你能解释一下正则表达式是如何工作的吗?$&
到底在做什么?这很好,我会尝试一下,墨西哥风格是的,我决定把数字/整数作为第一个参数,否则更容易阅读,看起来很好如果count
获得默认值,它会更好。是的,而且我在OP中的解决方案也失败了,因为0%0==0或等待,实际上它等于NaN,不知道为什么我会得到一个换行符作为第二个字符,嗯