无法用<p> </p>替换<p> </p>

时间:2012-10-14 17:43:20

标签: javascript regex

使用原生javascript我无法让string.replace("<p> </p>", "<P>&nbsp;</p>");工作,似乎找不到任何要替换的内容。

当我得到

元素的outerHTML或innerHTML时,它返回一个标准空格字符“”,我需要获得该空间的"&nbsp;"版本。

我将如何做到这一点。我试着写一个正则表达式,但似乎正则表达式找不到任何替换,我知道页面上至少有3-4个。

1 个答案:

答案 0 :(得分:0)

它确实有效,但它只取代了第一次出现。您必须使用带有全局标记(/<p> <\/p>/g)的正则表达式replace(),但它是no good idea to match html with regex(尽管它可能适用于此特定,简单情况)。

DOM的方式会更清晰:

var paragraphs = document.getElementsByTagName("p");
for (var i=0; i<paragraps.length; i++)
    if (paragraphs[i].innerHTML == " ") // does not contain other empty elements
        paragraphs[i].innerText = "\uA0";