JavaScript实现诗词字符串每四行后添加空行的技术求助
解决诗词文本每四行后添加空行的问题
你的原有代码逻辑完全偏离需求——你是在判断总行数是否能被5整除,然后直接拼接原字符串,这根本没法实现每4行后插入空行的效果。正确的思路是先把文本拆分成每行,遍历过程中按规则插入空行,最后重新拼接成字符串。
具体实现代码(JavaScript)
const poemValue = `aaa bbb ccc ddd eee fff ggg hhh jjj kkk lll mmm`; // 分割文本为每行数组,兼容所有换行格式(\n、\r、\r\n) const lines = poemValue.split(/\r?\n|\r/); const processedLines = []; for (let i = 0; i < lines.length; i++) { // 先将当前行加入结果数组 processedLines.push(lines[i]); // 每4行后插入空行,但避免在最后一行末尾多加空行 if ((i + 1) % 4 === 0 && i !== lines.length - 1) { processedLines.push(''); } } // 将处理后的数组重新拼接为目标格式字符串 const formattedPoem = processedLines.join('\n'); console.log(formattedPoem);
代码说明
- 兼容换行分割:用
split(/\r?\n|\r/)可以覆盖Windows、Linux、Mac系统的各种换行格式,确保每行都被正确拆分。 - 精准插入空行:循环时每添加一行就检查,当当前是第4、8、12...行时(通过
(i+1)%4===0判断),并且不是最后一行,就插入一个空字符串,避免末尾多出不必要的空行。 - 重新拼接文本:用
join('\n')把处理后的数组变回带换行的字符串,即可得到你需要的格式。
内容的提问来源于stack exchange,提问作者bart
相关产品推荐
相关产品推荐

