如何用Lorem Ipsum文本替换原文本并保留格式特征
实现匹配格式的Lorem Ipsum文本替换
核心思路是逐字符匹配原文本的格式特征,利用lorem-ipsum库生成基础文本后,按原文本的大小写、非字母字符位置做对应替换,具体步骤和代码实现如下:
实现逻辑
- 生成足够长的Lorem Ipsum文本作为字符替换池,统一转为小写备用
- 遍历原文本的每个字符:
- 非字母类字符(标点、空格、数字等)直接保留
- 字母类字符从替换池中取对应位置的字符,再匹配原字母的大小写
代码示例
const loremIpsum = require('lorem-ipsum').loremIpsum; function formatMatchingLorem(originalText) { // 生成超长Lorem文本,去除空格后作为字符池 let loremPool = loremIpsum({ count: 100, units: 'words' }).toLowerCase().replace(/\s/g, ''); let poolIndex = 0; let result = ''; for (const char of originalText) { // 非字母直接保留 if (!/[a-zA-Z]/.test(char)) { result += char; continue; } // 从字符池取字符并匹配原大小写 let targetChar = loremPool[poolIndex % loremPool.length]; result += char === char.toUpperCase() ? targetChar.toUpperCase() : targetChar; poolIndex++; } return result; } // 测试示例 const original = `I, have a text that I want to replace. END;`; const replaced = formatMatchingLorem(original); console.log(replaced); // 输出示例:D, quam e lementum Ferme potincidu. PUR;
额外优化
如果需要贴近示例里的"单词拆分带空格"效果,可以在遍历过程中识别原文本的空格位置,从Lorem单词库中截取对应长度的单词片段,再按原空格位置拆分插入。
内容的提问来源于stack exchange,提问作者Sergino
相关产品推荐
相关产品推荐

