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函数的参数的正则表达式该如何书写?
急求!!!不甚感激!!!
[解决办法]
我觉得还不如先把 423 换成别地字符,整个的替换完成以后再换回 423
当然用正则也可以。
[解决办法]
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);
}
这个是js里的。你写个按钮调用下就是
[解决办法]