Javascript 用正则表达式清除HTML中的空白
正则表达式是否可以清除HTML中的空白 例如:Javascript 用正则表达式清除HTML中的空白,javascript,html,regex,Javascript,Html,Regex,正则表达式是否可以清除HTML中的空白 例如: <p><b>foo</b> <i>bar</i></p> <p>foo</p> <p>bar</p> foo-bar foo酒吧 在第一行,结束b和开始i标记之间的空格是有效的(尽管它可能是一个),但是在第二行,我希望清除空白,因为它不应该有任何语义值 也许使用DOM遍历可以更好地解决这一问题?似乎更适合您所寻找的内容,而不是
<p><b>foo</b> <i>bar</i></p>
<p>foo</p> <p>bar</p>
foo-bar
foo酒吧
在第一行,结束b和开始i标记之间的空格是有效的(尽管它可能是一个
),但是在第二行,我希望清除空白,因为它不应该有任何语义值
也许使用DOM遍历可以更好地解决这一问题?似乎更适合您所寻找的内容,而不是需要重新创建所有潜在的复杂规则(例如示例中的第一个空格很重要,但不是第二个空格,等等)
否则,我同意-DOM遍历将是一种比正则表达式好得多的方法-特别是如果您的HTML已经兼容XHTML并且可以轻松地作为XML进行遍历的话 首先我要引用;)
“要求正则表达式解析任意HTML就像要求Paris Hilton编写操作系统”
然后再谈生意。
您可以尝试使用不同的正则表达式来标记(尽管我怀疑这是一种有效的方法):
sed-e的/\n我很快就找到了HTML Tidy的javascript实现,但运气不好,所以DOM遍历就是这样。我需要这个尽可能快的运行,所以希望IE不会引起太多的问题。你为什么要费心在JavaScript中这么做呢?谁会受益?所有的HTML都已经传输到客户端并由浏览器呈现,因此在带宽或浏览器呈现方面,您不会节省任何东西。然后,我正在摆弄contenteditable div和diff match修补程序库。根据contenteditable的浏览器实现,我会得到不同数量的空白,从而在我往返于不同的浏览器时产生永无止境的差异。我能想到的最简单的解决方法是完全去掉空白。
sed -e 's/<p>\ </<p></g'