0001|3,0002|4,0003|77,0004,0005|99 能匹配出0001|3两个逗号间的字符

解决方案 »

  1.   

    //直接用字符串分割操作
    var str='0001|3,0002|4,0003|77,0004,0005|99';
    var arr1=str.split(','),arr2;
    for(var i=0;i<arr1.length;i++){
        arr2=arr1[i].split('|');
        alert(arr2[0]+':'+arr2[1])
    }
      

  2.   

    <script type="text/javascript">
    Array.prototype.inArray=function (value){for (var i=0;i<this.length;i++){if (this[i] == value){return true;}}return false};
    function replaceNo(a,b){
        var arr1=b.split(','),arr2,arr3=a.split(','),arr4=new Array();
        for(var i=0;i<arr1.length;i++){
            arr2=arr1[i].split('|');
            if(arr3.inArray(arr2[0])){
                arr4.push(arr2[0]);
            }else{
                arr4.push(arr1[i]);
            }
        };
        return arr4.join(',');
    }
    var str=replaceNo('0001,0008','0001|1,0005|7,0008|9');
    alert(str);
    </script>有什么不同,自己加点判断就是了
    replaceNo(a/*需要匹配的编号,多个编号以逗号分隔*/,b/*原始的列表*/)
      

  3.   


    var r,
        s='0001|3,0002|4,0003|77,0004,0005|99',
        no=['0001','0002','0003','0004'];for(var i=no.length-1;i>=0;i--){
        r=new RegExp('(\\\\s+|^|,)('+no[i]+')\\|\\d+(\\\\s+|$|,)','gi');
        alert('替换编号\t:'+no[i]+'\r\n原字符串\t:'+s+'\r\n替换  后\t:'+s.replace(r,'$1$2$3'))
    }
      

  4.   

    var key="0001";
    var reg=new RegExp(key+"(\|\d+)?,","g");
    yourhtml=yourhtml.replace(reg,"");
      

  5.   

    多谢tim,不过你的方法测试不通过s="000001|5,000002|4,000003|77,000004,000005|99"; 
    var key="000001";
    var reg=new RegExp(key+"(\|\d+)?,","g");
    alert('替换编号\t:'+key+'\r\n原字符串\t:'+s+'\r\n替换 后\t:'+s.replace(reg,""));