【问题标题】:How to remove html tags from an Html string using RegEx?如何使用 RegEx 从 Html 字符串中删除 html 标签?
【发布时间】:2021-09-01 07:42:28
【问题描述】:

我有一个包含名称的 HTML 字符串:

<div class=\"ExternalClassBE95E28C1751447DB985774141C7FE9C\"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>

而且,我想删除所有 html 标记并在名称之间放置“&”,但不要放在最后一个结尾,例如:

Not desired: Tina Schmelz & Sascha Balke &
Desired:     Tina Schmelz & Sascha Balke

我使用了正则表达式和字符串替换属性。

我可以通过使用“&”替换所有&lt;br&gt;标签来做到这一点,然后使用以下代码删除所有html标签:

let mytext = '<div class=\"ExternalClassBE95E28C1751447DB985774141C7FE9C\"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>';
mytext = mytext.replaceAll(/<br>/gi, ' & ');
mytext = mytext.replaceAll(/<.*?>/gi, ''); 

console.log(mytext)

我的问题:如何删除最后一个'&'?或者,有没有人知道更好的 RegEx 可以在一行中完成所有内容? :)

【问题讨论】:

  • 你的名字总是出现在 p 标签中吗?

标签: javascript regex string


【解决方案1】:

你可以使用

.replace(/<br>(?=(?:\s*<[^>]*>)*$)|(<br>)|<[^>]*>/gi, (x,y) => y ? ' & ' : '')

查看 JavaScript 演示:

const text = '<div class="ExternalClassBE95E28C1751447DB985774141C7FE9C"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>';
const regex = /<br>(?=(?:\s*<[^>]*>)*$)|(<br>)|<[^>]*>/gi;
console.log(
  text.replace(regex, (x,y) => y ? ' & ' : '')
);

详情:

  • &lt;br&gt;(?=(?:\s*&lt;[^&gt;]*&gt;)*$) - 一个&lt;br&gt;,后跟零个或多个零个或多个空格,然后是&lt;...&gt; 子字符串,直到字符串结尾
  • |- 或
  • (&lt;br&gt;) - 第 1 组:&lt;br&gt; 标签
  • | - 或
  • &lt;[^&gt;]*&gt; - &lt;,除&lt; 和&gt; 和&gt; 之外的零个或多个字符。

【讨论】:

  • 完美的维克多!非常感谢。
【解决方案2】:

您可以用您已经编写的代码替换所有标签;然后使用split 函数将名称和join 分开,将&amp; 插入所需的点。

const myTextParsed = []

let myText = '<div class=\"ExternalClassBE95E28C1751447DB985774141C7FE9C\"><p>Tina Schmelz<br></p><p>Sascha Balke<br></p></div>';

let myTextArray = myText.split('<br>'); 

myTextArray = myTextArray.map(ta => {
  const temp = ta.replaceAll(/<.*?>/gi, '')
  if (temp.length > 0) { myTextParsed.push(temp) }  
});

myText = myTextParsed.join(' & ');

console.log(myText)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2012-01-31
    • 2021-06-21
    • 2013-02-24
    相关资源
    最近更新 更多