如何处理 Waline 返回的 HTML 和换行符问题
学习笔记作者:admin日期:2025-06-23点击:169
摘要:Waline 返回的评论包含 HTML 标签和换行符,本文介绍了两种方法(正则替换和 DOMParser)去除这些内容,保留纯文本,并提供了代码示例。
如何处理 Waline 返回的 HTML 和换行符问题
      你遇到的问题是:从 Waline 返回的 comment 字段中包含 HTML 标签(如 <p>、</p>)和换行符(\n),你想去掉这些内容,只保留纯文本。
示例数据
{
  "comment": "<p>test</p>\n",
  "nick": "admin"
}目标
      将 "comment" 字段中的:
- HTML 标签(如 <p>、</p>)
- 换行符 \n
都去掉,最终得到:
test解决方法
方法一:使用正则表达式 + replace 去掉 HTML 和换行
function cleanComment(html) {
  // 先去除所有 HTML 标签
  let text = html.replace(/<[^>]+>/g, '');
  // 再去除 \n 和首尾空格
  return text.replace(/\n/g, '').trim();
}
方法二:使用 DOM 解析器(更安全)
function cleanHTML(str) {
  const doc = new DOMParser().parseFromString(str, 'text/html');
  return doc.body.textContent || '';
}
最终代码示例
RecentComments({
  serverURL: 'https://waline.gezhong.vip',
  count: 5,
  el: '#waline-recent'
}).then(({ comments }) => {
  function cleanHTML(str) {
    const doc = new DOMParser().parseFromString(str, 'text/html');
    return doc.body.textContent || '';
  }
  const html = comments.data.map(comment => {
    const text = cleanHTML(comment.comment);
    return `
      <div class="waline-comment"
        ><strong>${comment.nick}</strong>: ${text}
      </div>
    `;
  }).join('');
  document.getElementById('waline-recent').innerHTML = html;
});总结
      两种方法都可以有效去除 HTML 标签和换行符,推荐使用更安全的 DOMParser。