//直接用字符串分割操作 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]) }
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')) }
var key="0001"; var reg=new RegExp(key+"(\|\d+)?,","g"); yourhtml=yourhtml.replace(reg,"");
多谢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,""));
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])
}
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/*原始的列表*/)
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'))
}
var reg=new RegExp(key+"(\|\d+)?,","g");
yourhtml=yourhtml.replace(reg,"");
var key="000001";
var reg=new RegExp(key+"(\|\d+)?,","g");
alert('替换编号\t:'+key+'\r\n原字符串\t:'+s+'\r\n替换 后\t:'+s.replace(reg,""));