我想用正文中的单个中断替换多个中断,它应该在中断之间尊重文本。此外,它不应该影响任何元素上的事件处理程序。 例如,
text1<br/><br/><br/>text2<br/><br/><p>text3</p>text4<br/><br/><br/>text5
应该改为
text1<br/>text2<br/><p>text3</p>text4</p><br/>text5
我在stackoverflow上发现了一些与此相关的问题,但我无法使这些工作适用于我的场景。我相信它不重复所以发布它。
答案 0 :(得分:0)
试试这个
var oldText="text1<br/><br/><br/>text2<br/><br/><p>text3</p>text4<br/><br/><br/>text5";
var newText = oldText.replace(/(?:<br[^>]*>\s*){2,}/g, '<br>');
修改强>
根据您的需要
$("#clickableDiv" ).click(function() {
alert('clicked me');
});
$("p" ).click(function() {
alert('clicked me');
});
var bodyHTML = $('body').html();
console.log( "ready!" );
bodyHTML = bodyHTML.replace(/(?:<br[^>]*>\s*){2,}/g,"<br/>");
console.log(bodyHTML);
$('body').html(bodyHTML);
});
答案 1 :(得分:0)
试试
$a = "text1<br/><br/><br/>text2<br/><br/><p>text3</p>text4<br/><br/><br/>text5";
$b = preg_replace("/(?:<br\/>)+/", "<br/>", $a);
// $b == "text1<br/>text2<br/><p>text3</p>text4<br/>text5"