【问题标题】:replace multiple <br> in javascript replace with single <br>?用单个<br>替换javascript中的多个<br>?
【发布时间】:2012-12-04 09:46:43
【问题描述】:
我想用单个<br> 替换文本中的多个<br> 标签。
我的文字喜欢,
<p>fhgfhgfhgfh</p>
<br><br>
<p>ghgfhfgh</p>
<br><br>
<p>fghfghfgh</p>
<br><br>
<p>fghfghfgh</p>
<br><br>
<p>fghfgh</p>
<br><br>
如何将多个<br> 替换为单个<br>?。
【问题讨论】:
标签:
javascript
html
regex
【解决方案1】:
试试这个
var str="<p>fhgfhgfhgfh</p><br><br><p>ghgfhfgh</p><br><br><p>";
var n=str.replace(/<br><br>/g,"<br>");
console.log(n);
工作DEMO
编辑:上面的代码适用于 2 个br 标签,下面的代码应该处理任意数量的 br 标签。
var n = str.replace(/(<br>)+/g, '<br>');
工作DEMO
其中/.../ 表示正则表达式,(<br>) 表示<br> 标记,+ 表示前一个表达式出现一次或多次,最后g 用于全局替换。
【解决方案2】:
这应该可以解决问题:
str.replace(/(?:<br>){2,}/g, '<br>')
或者,如果它们可以在不同的行上:
str.replace(/(?:<br>\s*){2,}/g, '<br>')