我有一个变量(在此示例中为Б
),我希望将var str = "I!%1$s-I!%2$s TTL!%3$s";
替换为数组中的元素(%
)。
我稍微谷歌并发现this solution,但我在实施它时遇到了麻烦。我的问题是我想用多个字符替换单个字符,然后继续字符串,但这只是覆盖了字符。我其实不知道为什么。
感谢任何帮助,我的代码如下
var regex = ['aaa', 'bbb', 'ccc'];
答案 0 :(得分:3)
使用replacement function,就像这样
var str = "I!%1$s-I!%2$s TTL!%3$s";
var regex = ['[123]', '[456]', '[789]'];
console.log(str.replace(/%(\d+)/g, function(match, group1) {
return regex[parseInt(group1) - 1] + group1;
}));
// I![123]1$s-I![456]2$s TTL![789]3$s
RegEx /%(\d+)/g
匹配模式%
后跟一个或多个数字的任何内容。它将数字捕获为一组。然后将完全匹配和组传递给函数以获得实际替换。在该函数中,您将组转换为parseInt
的数字,并从regex
数组返回相应的值。