正确的话应得到 ["aa\\,bb","cc"] 而我得到 ["aa\\,b","cc"] 

解决方案 »

  1.   

    <script>
    var s="aa\\,bb,cc";
    var arr = s.split(/(?:\b|\s),/);
    alert(arr[0]+"@@@"+arr[1]);
    </script>
      

  2.   

    <script>
    var s="aa\\,bb,cc";
    var arr = s.split(/(?:\b|\s),/);
    alert(arr[0]+"@@@"+arr[1]);
    </script>
      

  3.   

    由于 JavaScript 的正则表达式所支持的语法有限,使用 split 很难实现这个功能,可以采用 match 变通地实现一下。<script type="text/javascript">
    window.onload = function() {
      var s = 'aa\\,bb,cc,\\,d\\,d';
      var ss = s.match(/[^\\,]+(?:\\.[^\\,]*)*|[^\\,]*(?:\\.[^\\,]*)+/g);
      alert(ss.join(' | '));
    }
    </script>