仅替换html标记之间的空格

时间:2015-02-16 16:04:08

标签: html regex html5 replace

我有一个像

这样的字符串
var x = "<html><head>  <title>Hello!</title> </head> <body> <div class=”div1”> "+
"<h1>This is a headline!</h1> "+
"<br><img src=”header-image.png”>  </div>  "+
"<div class=”div2”>  <a href=”http://www.google.com”> </a>  </div>"+
"<div class='div3'></div>  </body>  </html>";

输出应为

x = "<html><head><title>Hello!</title></head><body><div class=”div1”>"+
"<h1>This is a headline!</h1>"+
"<br><img src=”header-image.png”></div>"+
"<div class=”div2”><a href=”http://www.google.com”></a></div>"+
"<div class='div3'></div></body></html>";

在输出中,我不应该在&gt;之间留下任何空格。和&lt;仅限标签。

如果元素和属性之间有任何空格,它应该是完整的。 如果我有以下文字

input : <a href='www.google.com'> Click Here </a>  <br/><span>  </span>

输出应该是

<a href='www.google.com'> Click Here </a><br/><span></span>

表示只有关闭和打开标签之间的空格才能被空字符串替换为#34;&#34;。

我试过

x = x.replace(/>( )</g,"")

和输出是

"<html><head>  <title>Hello!</title/headbodydiv class=”div1”h1>This is a headline!</h1><br><img src=”header-image.png”>  </div><div class=”div2”>    <a href=”http://www.google.com”></a></div><div class='div3'></div>  </body>  </html>"

我仍然在标签之间留下一些空格。 有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

只需应用此正则表达式并替换为empty string

(?<=>)\s*

参见演示。

https://www.regex101.com/r/rK5lU1/35

编辑:

似乎看起来不支持。使用

>\s*

并替换为>

答案 1 :(得分:0)

以下正则表达式将替换><符号(包含)与><

之间的所有空格
x.replace(/>\s+</g, "><")

OR

x.replace(/>[ \t]+</g, "><")

使用trim()函数删除所有前导和尾随空格。

> s.replace(/>\s+</g, "><").trim()
'<a href=\'www.google.com\'> Click Here </a><br/><span></span>'

示例:

> var s = "<a href='www.google.com'> Click Here </a>  <br/><span>  </span>"
undefined
> s.replace(/>\s+</g, "><")
'<a href=\'www.google.com\'> Click Here </a><br/><span></span>'

答案 2 :(得分:0)

或使用此模式

(?<=>) +(?=<)

Demo