正则表达式删除没有数据的id的跨度

时间:2017-05-25 11:54:12

标签: javascript jquery regex regex-group

我有这个字符串。我想在不删除数据的情况下删除具有id的span。

输入: var testString = "<span class="test01">Electrical drafting Scheduling tools <span id="spcc15in0os0">draftin</span><span> </span> Scheduling tools Mechanical</span>"

预期输出:

"<span class="test01">Electrical drafting Scheduling tools draftin<span> </span> Scheduling tools Mechanical</span>"

我是regex的新手。试了几件事。

尝试1:testString.replace(/<\/?span\sid=[^>]*>/g, "") 结果:但它没有删除span的结束标记

试试2:testString.replace(/(<span id=".*"(?: \w+="[^"]+")*>([^<]*)<\/span>)/gi, "") 结果:它正在删除具有数据id的span。

1 个答案:

答案 0 :(得分:0)

如果你不必,你不应该通过正则表达式解析HTML。您使用jquery为自己的帖子添加了标签,因此可以为您解决问题:

&#13;
&#13;
var testString = "<span class='test01'>Electrical drafting Scheduling tools <span id='spcc15in0os0'>draftin</span><span> </span> Scheduling tools Mechanical</span>";

var $element = $(testString);
$element.find("span").each(function(index) {
    var innerText= $(this).text();
    $(this).replaceWith(innerText);
});

var newString = $element.html();

console.log(newString);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;