如何从内容中删除多个内容?

时间:2016-01-25 09:38:49

标签: javascript jquery dom replace

我有这样的内容:

<div class="newscontent">

      <p class="article-lead">Lorem ipsum dolor sit amet, in laoreet fermentum, ac turpis quam, libero in tincidunt orci at, nec sociosqu, accumsan sed eget pretium libero deserunt suscipit.</p>



    Lectus lobortis aenean odio posuere tellus non, tincidunt urna nec rhoncus wisi, turpis eros duis lorem dui sagittis, convallis arcu vestibulum non ad non.<br/><br/> <br/><br/>Lacinia aliquet, adipiscing egestas, quae consectetuer vel, nulla mattis aenean quam risus commodo. Egestas ipsum nunc vitae amet. Proin molestie, in rhoncus, in pellentesque vitae aliquam quis suscipit lorem, eu metus quis adipiscing tempus ante. Donec non morbi parturient. Libero nam pretium ipsum adipiscing risus cras.<br/><br/>

 <br/><br/>Ultrices elit nec mauris, ante consequat, nec sapien mi pharetra. Quam proin, non sem tortor, dis odio et. Justo lectus quis, tincidunt praesent fermentum eu, quis risus, tempor at eros id nunc eget urna, at sem pulvinar ullamcorper accumsan.<br/><br/>Etiam maecenas leo eget, aliquet faucibus mi lectus erat rhoncus turpis. Velit tristique ante. Morbi et ipsum at dolor nunc, tristique sed gravida in eu molestie viverra. 

            </div>


我想在两个段落(http://jsfiddle.net/1nsyqebe/)之间删除多个<br><br/>到一个<br><br/>

var ta = document.getElementById('b');
ta.innerHTML = ta.replace("<br><br/><br><br/>", "<br><br/>");
<div class="newscontent">

  <p class="article-lead">Lorem ipsum dolor sit amet, in laoreet fermentum, ac turpis quam, libero in tincidunt orci at, nec sociosqu, accumsan sed eget pretium libero deserunt suscipit.</p>

     
     
Lectus lobortis aenean odio posuere tellus non, tincidunt urna nec rhoncus wisi, turpis eros duis lorem dui sagittis, convallis arcu vestibulum non ad non.<br/><br/> <br/><br/>Lacinia aliquet, adipiscing egestas, quae consectetuer vel, nulla mattis aenean quam risus commodo. Egestas ipsum nunc vitae amet. Proin molestie, in rhoncus, in pellentesque vitae aliquam quis suscipit lorem, eu metus quis adipiscing tempus ante. Donec non morbi parturient. Libero nam pretium ipsum adipiscing risus cras.<br/><br/>
 
 <br/><br/>Ultrices elit nec mauris, ante consequat, nec sapien mi pharetra. Quam proin, non sem tortor, dis odio et. Justo lectus quis, tincidunt praesent fermentum eu, quis risus, tempor at eros id nunc eget urna, at sem pulvinar ullamcorper accumsan.<br/><br/>Etiam maecenas leo eget, aliquet faucibus mi lectus erat rhoncus turpis. Velit tristique ante. Morbi et ipsum at dolor nunc, tristique sed gravida in eu molestie viverra. 
     
        </div>

2 个答案:

答案 0 :(得分:0)

正则表达式会为您排序。

要明确匹配一系列4 <br /> s(格式不同),您需要这样的正则表达式:

/(<br[^\/>]*\/?>\s*){4}/gi

这样工作原理如下:

  • <br匹配标记的开头
  • [^>\/]*匹配>/
  • 以外的零个或多个字符
  • \/?可选择匹配/
  • >与我们标记的结尾相匹配
  • \s*匹配零个或多个空白字符。
  • (...){4}恰好匹配()之间的4个实例

因此,在您的代码中使用它,它看起来像这样:

ta.innerHTML = ta.innerHTML.replace(/(<br[^\/>]*\/?>\s*){4}/gi, '<br /><br />');

当然,如果您想用一个替换任何2 <br />,我相信您可以找出要改变的内容!

答案 1 :(得分:0)

好的问题是你没有以正确的方式获取元素,而且,你不能替换HTML元素,你必须替换一个字符串,所以首先更改'.innerHTML的替换。替换',然后更改替换单词。这里是纠正;)

var ta = document.getElementsByClassName('newscontent')[0];
console.log(ta.innerHTML);
ta.innerHTML = ta.innerHTML.replace(/<br><br>/gi, "<br>");
console.log(ta.innerHTML);