You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用RegEx移除HTML字符串标签并拼接名称避免末尾多余&

现有代码修复方案

你当前输出末尾多余&是因为最后一个姓名后也跟着<br>标签,替换后就会在末尾多出&,只需在现有逻辑最后加一步收尾清理即可:

let mytext = '<div class="ExternalClassBE95E28C1751447DB985774141C7FE9C"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>';
mytext = mytext.replaceAll(/<br>/gi, ' & ')
  .replaceAll(/<.*?>/gi, '')
  .trim()
  .replace(/\s*&$/, ''); // 匹配末尾的&和前置空白直接移除

console.log(mytext) // 输出:Tina Schmelz & Sascha Balke

更优的一行正则实现

直接提取所有标签之间的纯文本姓名再拼接,从根源上避免末尾多余符号问题,适配任意数量的姓名:

const mytext = '<div class="ExternalClassBE95E28C1751447DB985774141C7FE9C"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>';
const result = mytext.match(/(?<=>)[^<>]+(?=<)/g).filter(item => item.trim()).join(' & ');

console.log(result); // 输出:Tina Schmelz & Sascha Balke

正则逻辑说明:匹配所有处于>和<之间的非标签字符,过滤掉空白内容后直接用&拼接,不用提前替换<br>标签,兼容性更强。

更稳妥的DOM解析方案(浏览器环境)

正则处理HTML存在一定边界风险,如果是运行在浏览器环境,直接用DOM解析不会出错:

const mytext = '<div class="ExternalClassBE95E28C1751447DB985774141C7FE9C"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>';
const tempDiv = document.createElement('div');
tempDiv.innerHTML = mytext;
const result = tempDiv.textContent.trim().split(/\n/).map(item => item.trim()).filter(Boolean).join(' & ');

console.log(result); // 输出:Tina Schmelz & Sascha Balke

内容的提问来源于stack exchange,提问作者hiroimono

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:45:02