JavaScript + Reg-Ex中是否有一种简化的方法可以用替代符号替换集合中每个符号的所有出现位置?
示例:
"Test: 1, 2, 3 and 1".replace("123", "ABC");
// we need to get: "Test: A, B, C and A";
我的意思是,是否有任何Reg-Ex技巧可以避免for循环?无论如何,最有效的方法是什么?
规定:
答案 0 :(得分:4)
您可以使用Object Literal构建替换。
var map = {'1':'A', '2':'B', '3':'C'};
str = str.replace(/[123]/g, function(k) {
return map[k];
});
或者使用地图为此创建自定义函数:
function _replace(str, map) {
var re = new RegExp('['+Object.keys(map).join('')+']','g');
return str.replace(re, function(x) { return map[x] });
}