const str = 'This is _XXX_0_ an example',
target = ['just', 'nothing', 'bla'];
现在我需要从该字符串中获取数字,因为_XXX_
数字_
是固定格式,以获取应该替换虚拟字符串的元素。
我试过了:
str.replace(/_XXX_(/d+)_/, target[$i]);
数字值可能介于0到100之间。我做错了什么?
此示例的结果是:
This is just an example
答案 0 :(得分:1)
我试过了:
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);