关于Javascript正则表达式替换操作 RegExp() replace()

时间:2024-03-28 10:04:50

一、正则表达式匹配  RegExp

new RegExp(pattern, attributes); 

pattern/attributes

参数

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m"。 g --全局匹配;i--忽略大小写匹配;m--多行匹配。

需要转译的字符

关于Javascript正则表达式替换操作 RegExp() replace()

二、replace()

stringObject.replace(regexp/substr,replacement)

例子:

var str = "hello world,你好 world";
var old = "world";
var obj = "世界";
str = s1.replace(new RegExp(old,'g'),obj);

alert(str);
//输出: hello 世界,你好 世界

三、需要转译的stringObject.replace(regexp/substr,replacement)实例

该例子中,右斜杠  \/  用  1357  替代  ; \( 用 字符串  lkh 替换 \) 用字符串 rhk 替代  ,  最后再替换回去。

var planRoutStr = '第一个目标842-深圳滨海机楼-1_0-16-1-Y1C401-1(RX1/TX1)-/odu4=1第二个目标842-深圳滨海机楼-1_0-16-1-Y1C401-1(RX1/TX1)-/odu4=1';
  var old = "842-深圳滨海机楼-1_0-16-1-Y1C401-1(RX1/TX1)-/odu4=1";
  var obj = "841-深圳信息枢纽大厦-1_0-14-1-Y1C401-1(RX1/TX1)-/odu4=1";
 
planRoutStr = planRoutStr.replace(/\//g, '1357').replace(/\(/g, 'lkh').replace(/\)/g, 'rkh');

old = old.replace(/\//g, '1357').replace(/\(/g, 'lkh').replace(/\)/g, 'rkh');
obj =  obj.replace(/\//g, '1357').replace(/\(/g, 'lkh').replace(/\)/g, 'rkh');
        planRoutStr = planRoutStr.replace( new RegExp(old,'g'), obj ).replace( new RegExp('1357','g'),'/').replace(new RegExp('lkh','g'), '(').replace(new RegExp('rkh','g'), ')');

alert(planRoutStr);
//输出:
//第一个目标841-深圳信息枢纽大厦-1_0-14-1-Y1C401-1(RX1/TX1)-/odu4=1第二个目标841-深圳信息枢纽大厦-1_0-14-1-Y1C401-1(RX1/TX1)-/odu4=1