2

我有一个这样的变量:

var text = "Lorem ipsum dolor sit amet, {img3} consectetur adipiscing elit."

我需要用 html 标记替换 ( {img3}
),但我需要知道数字(在示例 3 中,但可能是任何其他数字)以匹配它。

text = text.replace(/{img[0-9]+}/g, "<img src='imageName" + [0-9] + "'>");

做这个的最好方式是什么?

4

2 回答 2

2

您需要{img在匹配组中捕获数字并重新使用它:

text = text.replace(/{img(\d+)}/g, "<img src='imageName$1'>");
// => Lorem ipsum dolor sit amet, <img src='imageName3'> consectetur adipiscing elit.
于 2013-10-21T22:32:45.940 回答
1

我想用 $1 引用一个数组编号。例如,如果 $1 = 3,我想获取数组中的第三个值。

是的,可以将函数作为第二个参数#String.replace

注意: m1是从正则表达式中捕获的值。-1我从m1哪里减去我的第一个数组元素,如果你想要一个索引11,只需删除该部分。0

var text  = "Lorem ipsum dolor sit amet, {img3} consectetur adipiscing elit.";
var array = [11, 20, 57, 15, 25, 66];

text = text.replace(/{img(\d+)}/g, function(s, m1) {
     return "<b>" + array[m1-1] + "</b>"; #return <img> tag code here.
})

回报:

Lorem ipsum dolor sit amet, 57 consectetur adipiscing elit. 
于 2013-10-21T23:54:04.467 回答