将多个 <br> 标签替换为 JavaScript

replace multiple <br> tags with javascript

本文关键字:标签 替换 JavaScript br      更新时间:2023-09-26

我想在文本中使用JavaScript将多个<br />标签替换为单个<br />。我的文字像:

some text.<br />
<br />
<br />
<br />
<br />
<br />
<br />
some text

我尝试了以下代码:

document.body.innerHTML = document.body.innerHTML.replace(/<br /> <br />
    <br /> <br /><br /> <br />/g,"<br />"); </script>

但它没有用.

您已经指定它在 document.body 中,因此在 DOM 中。然后你可以(你应该)使用 DOM 方法:

var siblingBrs = [].slice.call( document.querySelectorAll('br + br') );
siblingBrs.forEach( function( br ){
    br.parentNode.removeChild( br );
});

http://jsfiddle.net/jL8jkkt0/

请注意,它与源代码中 <br /> 元素的字符串表示形式无关。

顺便说一句,如果它仅用于显示目的(以避免视觉间隙),您可以只使用 CSS:

br + br { display:none; }

http://jsfiddle.net/jL8jkkt0/1/

首先将 HTML 作为字符串获取,然后使用正则表达式替换它:

var s = document.body.innerHTML;
document.body.innerHTML = s.replace(/('<br['s]*'/?'>['s]*)+/g, '<br/>');
First Line<br><br /><br/><br><br /><br/>Second Line

尝试以下操作:

var stripped = original.replace(/(<br's*'/?>){3,}/gi, '<br>');

在这里替换不同的值...

{3,}

。将允许您控制删除发生的计数。

希望这有帮助!

试试这个:

var newText = oldText.replace(/(<br's*'/?>){3,}/gi, '<br>');

工作小提琴:

http://jsfiddle.net/r5bu1xq2/