Javascript 替换为范围和哈希映射
在下面的代码片段中,我试图替换从范围中找到的哈希映射Javascript 替换为范围和哈希映射,javascript,regex,range,Javascript,Regex,Range,在下面的代码片段中,我试图替换从范围中找到的哈希映射 var-maps=new-Array(); 映射[“k”]=“字母k”; 地图[“g”]=“字母g”; 地图[“c”]=“字母c”; var regex=/([kgc])a([kgc])a([kgc])a/g; var text='kagaca'; text=text.replace(正则表达式,映射[“$1”]+映射[“$2”]+映射[“$3”])//这不管用 console.log(文本); text='kagaca'; text=te
var-maps=new-Array();
映射[“k”]=“字母k”;
地图[“g”]=“字母g”;
地图[“c”]=“字母c”;
var regex=/([kgc])a([kgc])a([kgc])a/g;
var text='kagaca';
text=text.replace(正则表达式,映射[“$1”]+映射[“$2”]+映射[“$3”])//这不管用
console.log(文本);
text='kagaca';
text=text.replace(regex,maps[“k”]+''+maps[“g”]+''+maps[“c”])//这很有效
console.log(文本)代码>我在replace
中使用声明函数成功。我认为javascript误解了map中调用的$X
var-maps=new-Array();
映射[“k”]=“字母k”;
地图[“g”]=“字母g”;
地图[“c”]=“字母c”;
var regex=/([kgc])a([kgc])a([kgc])a/g;
var text='kagaca';
text=text.replace(regex,function(){
返回映射[参数[1]]+映射[参数[2]]+映射[参数[3]]
});//这现在起作用了
console.log(文本);
text='kagaca';
text=text.replace(regex,maps[“k”]+''+maps[“g”]+''+maps[“c”])//这很有效
console.log(文本)
text=text.replace(regex,($0,$1,$2,$3)=>maps[$1]+maps[$2]+maps[$3])
“$1”
是字符串$1,而不是未定义的第一个捕获组中的值。