替换为范围和哈希映射
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换为范围和哈希映射相关的知识,希望对你有一定的参考价值。
在下面的代码片段中,我正在尝试替换从范围中找到的哈希映射。
var maps = new Array();
maps["k"] = 'Letter K';
maps["g"] = 'Letter G';
maps["c"] = 'Letter C';
var regex = /([kgc])a([kgc])a([kgc])a/g;
var text = 'kagaca';
text = text.replace(regex,maps["$1"]+maps["$2"]+maps["$3"]);//this does'nt work
console.log(text);
text = 'kagaca';
text = text.replace(regex,maps["k"]+' '+ maps["g"]+' '+ maps["c"]);//this works
console.log(text);
静态正则表达式工作,我坚持从范围替换它。
答案
我在replace
中使用了一个声明的函数。我认为javascript误解了地图中的$X
called。
var maps = new Array();
maps["k"] = 'Letter K';
maps["g"] = 'Letter G';
maps["c"] = 'Letter C';
var regex = /([kgc])a([kgc])a([kgc])a/g;
var text = 'kagaca';
text = text.replace(regex,function(){
return maps[arguments[1]]+maps[arguments[2]]+maps[arguments[3]]
});//this now works
console.log(text);
text = 'kagaca';
text = text.replace(regex,maps["k"]+' '+ maps["g"]+' '+ maps["c"]);//this works
console.log(text);
以上是关于替换为范围和哈希映射的主要内容,如果未能解决你的问题,请参考以下文章