javascript - 如何使用 RegEx 从 Html 字符串中删除 html 标签?
问题描述
我有一个包含名称的 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
我使用了正则表达式和字符串替换属性。
我可以通过使用<br>
' & ' 替换所有标签来做到这一点,然后使用以下代码删除所有 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 可以在一行中完成所有内容?:)
解决方案
您可以用您已经编写的代码替换所有标签;然后使用split函数来划分名称并加入一个以插入&
所需的点。
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)
推荐阅读
- python - TypeError: must be str, not list - 单词列表
- django - Django Rest 框架:get_queryset 返回“详细信息”:“未找到”
- android - ktor android本地http服务器抛出错误
- android - Android EditTextPreference 默认值未显示
- python - 在 python 中运行相当于 VBA 代码
- c++ - C++读取整个文件目录
- python - 包含字典的列表中的 for 循环
- java - 为什么 jUnit 5 看不到我的异常测试?
- excel - 如何将数组传递给子
- angular - 在 Angular 9 中的输入字段上创建数字格式化程序