12312312312312<br/>  
1231asdfasdf<br/> <br/><br/>
aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>
asbgdiahsod<br/><br/><br/>我先描述下问题,比如很多个段落或者字符串,然后有很多<br/>,我想把上边的这些重复的br
都变成只有一个。怎么做呢?用js的方式做

解决方案 »

  1.   

    <script type="text/javascript">
    var a="asbgdiahsod<br/><br/><br/>";
    var reg=/(.*?)(<br\/>)\2*/;
    a=a.replace(reg,'$1$2');
    alert(a);
    </script>
    看看这样行不行
      

  2.   


    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    </head>
    <body>
    <textarea id="str">
    12312312312312<br/>   
    1231asdfasdf<br/><br/><br/>
    aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>
    asbgdiahsod<br/><br/><br/>
    </textarea>
    <script>
    function $(el){
    return typeof el == 'string' ? document.getElementById(el) : el;
    }
    var s = $('str').value;
    var r = /[^\s]+/g;
    var tmp = /<.+(?=<br\/>$)/g
    //alert( s.match(r) )
    s = s.replace(r, function($){
    return $.replace(tmp, '');
    })
    alert(s)
    </script>
    </body>
    </html>试试
      

  3.   

    楼上的,不行啊没去掉字符串是这种
    var a="12312312312312<br/>   1231asdfasdf<br/> <br/><br/>
    aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>
    asbgdiahsod<br/><br/><br/>
    "
      

  4.   

    是特定区域内吗
    比如他们都是在<div id="content"></div>中
    那样的话使用JS取得content的innerHTML,然后正则处理
    核心正则表达式为((<br/>)|(<br />))+这样是最简单的,但是1231asdfasdf<br/> <br/><br/>第一个和第二个中间的空格是你输错了,还是会出现br中有空的情况呢。如果不是一个个br紧挨着的话,还要再修改
      

  5.   

    (<br ?/>)+
    br连贯无其他字符,简单地这样。
      

  6.   

    var r = /[^\s]+/g; // 分行取出来
    var tmp = /<.+(?=<br\/>$)/g  // 每行删除 最后一个<br/>之前的 <br/> ,即保留最后一个<br/>
      

  7.   

    因为<br/>和<br/>之间还有空格,所以代码我加上一句s = s.replace(/ /g, '');
      

  8.   

    var a="12312312312312<br/> 1231asdfasdf<br/> <br/><br/>\n"+
    "aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>\n"+
    "asbgdiahsod<br/><br/><br/>";
    var reg=/(.*?)(<br\/>)\2*/g;
    var reg2=/ *(<br\/>) */g;
    a=a.replace(reg2,"$1");
    a=a.replace(reg,"$1<br/>");
    alert(a);
    这样?