const str = 'This is _XXX_0_ an example',
target = ['just', 'nothing', 'bla'];
现在,我需要从字符串中获取数字,因为
_XXX_
Number _
是固定格式,以获取应替换虚拟字符串的元素。我尝试了这个:
str.replace(/_XXX_(/d+)_/, target[$i]);
数字值可能在0到100之间。我在做什么错?
此示例的结果是:
This is just an example
最佳答案
我尝试了这个:
str.replace(/_XXX_(/d+)_/, target[$i]);
那里有两个问题:
您需要
\d
,而不是/d
。以上是语法错误。将评估
target[$i]
,然后将其传递给replace
。除非您在某处定义了ReferenceError
,否则大概会在其中得到$i
。您可能想要使该功能:
const result = str.replace(/_XXX_(\d+)_/, function(m, c0) {
return target[c0];
});
该函数将整体匹配作为第一个参数,然后将任何捕获组作为后续参数。
例:
const str = 'This is _XXX_0_ an example',
target = ['just', 'nothing', 'bla'];
const result = str.replace(/_XXX_(\d+)_/, function(m, c0) {
return target[c0];
});
console.log(result);