很好奇为什么这行不通。我经历了许多不同的排列,但是总的来说,这是我正在尝试做的并且无法使它起作用。
基本上,使用哈希键查找匹配项,然后使用该键通过哈希引用获取值。
var arr = {'blah':'WULLVERT','misc':'DUDETTER'};
var test_string = "maryLou is misc &&& such a cool mary blah dude yeah wullvert";
test_string = test_string.replace(/(jQuery.map(reg,function(k,v){return v}).join("|"))/gi,arr["$1"]);
test_string;
当然,当我使用字符串文字时..这行得通:(尽管仍然不能将$ 1用作哈希引用)。
test_string = test_string.replace(/(blah|msic)/gi,"$1_proofofconcept");
最佳答案
使用new RegExp(..)
动态生成正则表达式对象。
var arr = {'blah':'WULLVERT','misc':'DUDETTER'};
var test_string = "maryLou is misc &&& such a cool mary blah dude yeah wullvert";
test_string.replace(
new RegExp(jQuery.map(arr,function(v,k){return k}).join("|"), 'gi'),
function(x) { return arr[x]; }
);
// => "maryLou is DUDETTER &&& such a cool mary WULLVERT dude yeah wullvert"