我有问题。我目前正在寻找一种从字符串中删除任何 HTML 元素的方法。但是有两个条件:
应保留元素的内容
不应删除具有已定义类的特殊元素
我已经尝试了很多事情并查看了很多关于 SO 的问题/答案,但不幸的是我无法真正找出任何答案。不幸的是,这远远超出了我的能力。但我想知道这样的事情是如何工作的。
因此,当我有例如这样的字符串时:
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>
而且我还尝试了一个正则表达式工具来查看删除了什么,但不幸的是,我在这里也没有取得太大进展:
https://www.regexr.com/50qar
如果有人可以帮助我完成这项任务,我会很高兴。非常感谢!
更新
也许有一种方法只用一个正则表达式?如果是,在使用此正则表达式时,如何使用特殊类排除我的元素:/<\/?[^>]+(>|$)/g?
料青山看我应如是
jeck猫
相关分类