我正在尝试创建一个正则表达式来删除HTML表中的所有链接,以便在将表导出到Excel时不会显示链接。我正在使用下面的JavaScript行删除除链接文本之外的所有内容。有关如何删除链接文本的任何建议吗?感谢。
tableHTML = tableHTML.replace(/<a[^>]*>|<\/a>/g, "")
答案 0 :(得分:1)
我建议使用此代替正则表达式
window.onload = function() { // or onclick of your export
var clonedTable = document.getElementById("table1"); // to do non-destructive copy
var div = document.createElement("div");
div.innerHTML=clonedTable.outerHTML;
[].forEach.call(div.querySelectorAll("table a"),function(link) {
link.parentNode.removeChild(link);
});
document.body.appendChild(div); // or something else
}
&#13;
<table id="table1">
<tbody>
<tr>
<td>Here is a link <a href="bla">Bla</a> and one more <a href="bla">Bla</a> and one more <a href="bla">Bla</a> and one more <a href="bla">Bla</a> and one more</td>
</tr>
<tr>
<td>And a link <a href="bla">Bla</a> and one more <a href="bla">Bla</a></td>
</tr>
</tbody>
</table>
&#13;
答案 1 :(得分:0)
试试这个
<p id="mytext">Hello World</p>
<script>
var element = document.getElementById('mytext');
var highlightedText = element.innerHTML;
var parent = element.parentNode;
var newNode = document.createTextNode(highlightedText);
parent.insertBefore(newNode, element);
parent.removeChild(element);
</script>
答案 2 :(得分:-1)
我不确定你想要做什么,但如果你想删除所有链接,这种模式会对你有帮助:
/<a.*?a>/gm
完整代码:
tableHTML = tableHTML.replace(/<a.*?a>/gm, "")