js正则表达式 各位大侠: 对于一个这样的字符串:str="(DWDM='423' or 2) and (4 or DWDM='423') or 3",我想将其中的数字替换成别的字符串,但是一对单引号''之间的数字不被替换,即第一次将数字 2 替换成a,则变成"(DWDM='423' or a) and (4 or DWDM='423') or 3";第二次替换 3 为 b 则变成 "(DWDM='423' or a) and (4 or DWDM='423') or b",第三次替换 4 为c则变成 "(DWDM='423' or a) and (c or DWDM='423') or 3"; 对于这样的需求,在js中的replace函数的参数的正则表达式该如何书写? 急求!!!不甚感激!!!
当然用正则也可以。
------解决方案-------------------- var str="(DWDM='423' or 2) and (4 or DWDM='423') or 3"; str = str.replace(/\d\d\d/g,"四二三"); str = str.replace(/2/,"a"); str = str.replace(/3/,"b"); str = str.replace(/4/,"c"); str = str.replace(/四二三/g,"423"); alert(str);
------解决方案-------------------- 一个一个的替换吧。
------解决方案--------------------
JScript code
var str="(DWDM='423' or 2) and (4 or DWDM='423') or 3";
var arr = ["a","b","c","d"];
str = str.replace(/[^'\d]\d+[^'\d]?/g,function($1){
return $1.replace(/\d/g,function($1){return arr[parseInt($1) - 1]});
});
alert(str);
------解决方案-------------------- function aa(){ var sp = "(DWDM='423' or a) and (c or DWDM='423') or 3"; sp = sp.replace(/[2]/g, 'a'); alert(sp); sp = sp.replace(/[3]/g, 'b'); alert(sp); sp = sp.replace(/[4]/g, 'c'); alert(sp); }