我有一个这样的变量:
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] + "'>");
做这个的最好方式是什么?
我有一个这样的变量:
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] + "'>");
做这个的最好方式是什么?
您需要{img
在匹配组中捕获数字并重新使用它:
text = text.replace(/{img(\d+)}/g, "<img src='imageName$1'>");
// => Lorem ipsum dolor sit amet, <img src='imageName3'> consectetur adipiscing elit.
我想用 $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.