用于删除HTML链接的正则表达式

时间:2016-05-23 12:46:09

标签: javascript html regex

我正在尝试创建一个正则表达式来删除HTML表中的所有链接,以便在将表导出到Excel时不会显示链接。我正在使用下面的JavaScript行删除除链接文本之外的所有内容。有关如何删除链接文本的任何建议吗?感谢。

tableHTML = tableHTML.replace(/<a[^>]*>|<\/a>/g, "")

3 个答案:

答案 0 :(得分:1)

我建议使用此代替正则表达式

&#13;
&#13;
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;
&#13;
&#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

Online Demo

完整代码:

tableHTML = tableHTML.replace(/<a.*?a>/gm, "")