Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用正则表达式清除HTML中的空白_Javascript_Html_Regex - Fatal编程技术网

Javascript 用正则表达式清除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遍历可以更好地解决这一问题?似乎更适合您所寻找的内容,而不是

正则表达式是否可以清除HTML中的空白

例如:

<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'