[英]Javascript string replace with dynamically created pattern
我的代码仅替换第一个匹配项,而忽略标志(全局和多行)。 我究竟做错了什么?
for (var i = 0; i < values.length; i++) {
template = template.replace('{' + i + '}', values[i].toString().trim(), 'gm');
}
如您所见,我的占位符具有以下格式:{0},{1}等
根据MDN ,对于正常的.replace()
方法,这些标志是非标准的。 相反,您可以传递具有相同结果的RegExp。
template.replace(new RegExp('\\{' + i + '\\}', 'gm'),
values[i].toString().trim());
由于花括号在正则表达式中具有特殊意义,因此必须将其转义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.