繁体   English   中英

正则表达式中的随机字符替换

[英]Random character in RegEx replace

我想替换G $ 0字符串甘特(G $ 0,$ A4,$ B4)甘特(<> G $ 0 <>,$ A4,$ B4)。 所以我有以下代码:

var str = '=gantt(G$0,$A4,$B4) ';
var val = "G$0";
var val2 = val.replace(/\$/, "\\$")
var reg = new RegExp(val2, 'g');
var str = str.replace(reg, '<>' + val + '<>');

IE中的结果是: = gantt(<> GG $ 0 <>,$ A4,$ B4)请注意GG )。 该问题似乎是IE10特有的。

为什么会这样,这是IE错误吗?

替换应该假定一个字符串可以包含** G $ 0 **的多个实例

完全不需要使用RegEx。 坚持常规的字符串替换,您将不必转义val字符串。

var str = '=gantt(G$0,$A4,$B4) ';
var val = "G$0";
var result = str.replace(val, '<>' + val + '<>');

如果要替换val多个实例,可以使用.split.join来完成:

var str = '=gantt(G$0,$A4,$B4,G$0) ';
var val = "G$0";
var result = str.split(val).join('<>' + val + '<>');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM