var result=[];
result = str.split('#');
for (var i=0;i<result.length;i++){
  result[i] = result[i].split('-');
  for (var j=0;j<result[i].length;j++){
    result[i][j]=result[i][j].split('+');
 }
}//result[][][]

解决方案 »

  1.   

    var s = "#0-200+0.001#201-500+0.002#501-3000+0.003#3001-@+0.004"
    var a=s.split("#")
    var arr1=new Array();
    var arr2=new Array();
    var arr3=new Array();
    var arr4=new Array();
    var arr5=new Array()
    for(var i=1;i<a.length;i++){
    arr1[i-1]=a[i]
    //alert(arr1[i-1])
        arr5[i-1]=a[i]   
    }
    for(var i=0;i<arr5.length;i++){
    var b=arr5[i].split("-")
    //alert(b)
       arr4[i]=b[1]
    }
    for(var i=0;i<arr4.length;i++){       var c=arr4[i].split("+")
      arr2[i]=c[0]
      arr3[i]=c[1]
    }
    alert(arr1)
    alert(arr2)
    alert(arr3)
      

  2.   

    var s = "#0-200+0.001#201-500+0.002#501-3000+0.003#3001-@+0.004";
    var arr1=[],arr2=[],arr3=[];
    var i=0;
    s.replace(/#([^-]+[-]([^+]+)[+]([^#]+))/g , function($0,$1,$2,$3){
        arr1[i]=$1;arr2[i]=$2;arr3[i]=$3;i++;
      });
    alert(arr1)
    alert(arr2)
    alert(arr3)
      

  3.   

    to myxy82() :
      你的程序输出不了??其它两个程序都是对的。
      

  4.   

    还有一个问题:
    <script language="javascript" type="text/javascript">
    <!--
    var s = 0.2 + 1 + 9 + 1.2;
    document.write(s);
    //-->
    </script>
    我想它应该输出1.4的,为什么它会输出11.399999999999998,怎么控制它的精度呢?