只能split成
元素0:||ab||cc||dd
元素1:ab||cc||dd
元素2:ab||cc||dd|| 
下面是代码
var str='||ab||cc||dd||||ab||cc||dd||||ab||cc||dd||';
var arr=str.split(/||||/);

解决方案 »

  1.   

    只要正则???是不是把正则当万能了 ?var reg=/\|\|(.*?)\|\|(.*?)\|\|(.*?)||/
    要这样的?
      

  2.   

    我写的这个不能实现你要点的那种效果,
    但可能会给大家个提示
    <script>
    var str="||ab||cc||dd||||ab||cc||dd||||ab||cc||dd||";
    var ss= str.split(/(\|\|\|\|)/g); 
    //ss[0]="||ab||cc||dd"
    //ss[1]="ab||cc||dd"
    //ss[2]="ab||cc||dd||"
    </script>
      

  3.   

    可以实现但确实没有太大的必要非用正则不可
    var s="||ab||cc||dd||||ab||cc||dd||||ab||cc||dd||";
    var oReg=/.*?(\|\|)(?=\1|$)/g;
    alert(s.match(oReg));
      

  4.   


    var str="||ab||cc||dd||||ab||cc||dd||||ab||cc||dd||";
    var regexp = /\|\|ab\|\|cc\|\|dd\|\||\|\|ab\|\|cc\|\|dd\||\|\|\|ab\|\|cc\|\|dd\|\|/g;
    alert( str.match( regexp ) );
      

  5.   

    可惜JS不支持这个
    (?<=\|\|)(?=\|\|)
      

  6.   

    按你的代码<script>
    var str = '||ab||cc||dd||||ab||cc||dd||||ab||cc||dd||';
    var reg = /.+?\|\|(?=\|\||\|$)/g;
    var arr = str.match(reg);
    alert(arr.join('\n'));
    </script>
      

  7.   

    楼上的代码测试了下,做了下小改动:    var str = '||ab1||cc||dd||||ab2||cc||dd||||ab3||cc||dd||';
        var reg = /.+?\|\|(?=\|\||$)/g;
        var arr = str.match(reg);
        alert(arr.join('\n'));