我有问题。我目前正在寻找一种从字符串中删除任何 HTML 元素的方法。但有两个条件:
应保留元素的内容
不应删除已定义类的特殊元素
我已经尝试了很多事情并查看了很多问题/答案,但不幸的是我无法真正找出任何答案。不幸的是,这远远超出了我的能力。但我想知道这样的事情是如何运作的。
我尝试过的问题/答案: 如何从 JavaScript 中的字符串中删除 HTML 标签?, 从文本 JavaScript 中剥离 HTML
因此,当我有一个像这样的字符串时:
You have to pay <div class="keep-this">$200</div> per <span class="date">month</span> for your <span class="vehicle">car</span>
剥离后应该是这样的:
You have to pay <div class="keep-this">$200</div> per month for your car
我实际上尝试过以下操作:
jQuery(document).ready(function ($) {
let string = 'You have to pay <div class="keep-this">$200</div> per <span class="date">month</span> for your <span class="vehicle">car</span>';
console.log(string);
function removeHTMLfromString(string) {
let tmp = document.createElement("DIV");
tmp.innerHTML = string;
return tmp.textContent || tmp.innerText || "";
}
console.log(removeHTMLfromString(string));
console.log(string.replace(/<[^>]*>?/gm, ''));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我还尝试了一个正则表达式工具来查看删除了哪些内容,但不幸的是,我在这里也没有取得太大进展:
如果有人能帮助我完成这项任务,我会很高兴。多谢!
更新
也许有一种方法只用正则表达式就能做到这一点?如果是,在使用此正则表达式时如何排除具有特殊类的元素:/<\/?[^>]+(>|$)/g
?
缥缈止盈
白衣染霜花
相关分类