从String javascript中删除空<p> </p>标记

时间:2015-06-29 11:34:19

标签: javascript regex

我想删除<p align="left" dir="ltr">&nbsp;</p> <p>&nbsp;</p>

来自字符串的

标签。

str.replace(/\s|&nbsp;/g, '')

我需要格式化String,因为它将成为电子邮件模板的一部分,它不是完整的HTML

1 个答案:

答案 0 :(得分:1)

正则表达式is the wrong tool for this

如果您在浏览器中进行操作,则很容易:

var div = document.createElement('div');
div.innerHTML = str;
Array.prototype.slice.call(div.querySelectorAll('p'), function(p) {
    var html = p.innerHTML.trim();
    if (!html || html.toLowerCase() == "&nbsp;") {
        p.parentNode.removeChild(p);
    }
});
str = div.innerHTML; // Yes, the case of tag names may have changed, etc., but nothing substantive

如果您在其他环境中执行此操作,则可以使用适用于该环境的HTML解析器。 NodeJS有几个,包括cheerio。 JVM(如果你在JVM上使用JavaScript)拥有出色的JSoup。 .Net(如果你使用的是“JScript”)有一个JSoup的端口。等