使用 `textcontent` 会将 `\n` 当作普通字符显示,而用 `innerhtml` 结合正则替换可真实渲染换行并清除多余的转义序列 `\n`。
在 Web 开发中,若希望用户在
关键点在于:
✅ 推荐方案(兼顾实时性与语义清晰):
const editor = document.getElementById('editor');
const previewer
= document.getElementById('previewer');
editor.addEventListener('input', () => {
// 1. 移除所有字面量 '\n'(反斜杠 + n),避免被误认为换行指令
// 2. 将真实的换行符 \n 替换为
,使 HTML 正确换行
const cleaned = editor.value
.replace(/\\n/g, '') // 删除转义序列 '\n'
.replace(/\n/g, '
'); // 将真实换行转为
previewer.innerHTML = cleaned;
});
// 初始化预览(尤其当 textarea 含默认值时)
editor.dispatchEvent(new Event('input'));对应 HTML 示例:
⚠️ 注意事项:
标签虽能保留空白和换行,但会原样输出 \n 字符(即显示为文字 \n),不符合“去除转义字符”的需求;
总结:纯文本展示 ≠ 纯字符输出。根据需求选择 textContent(绝对安全、无格式)或 innerHTML(可控格式、需清洗),并明确区分“真实换行符”与“字面量 \n 字符”——这是实现精准文本预览的核心前提。