使用正则表达式变量作为​​正常变量 - Javascript

时间:2013-03-11 23:48:15

标签: javascript regex

x.innerHTML.replace(/@(.*?)/g, '<img src="'+get_data($1)+'">$1</img>')

有没有办法让$ 1用于get_data函数?谢谢你的建议。

更新

在评论中已明确表示OP还希望以@word形式匹配数据并专门拔出字符串。

2 个答案:

答案 0 :(得分:2)

您可以调用x.innerHTML.replace(rx,function),并使用以下参数调用该函数:

  • 匹配的子字符串
  • $ 1,$ 2 ...
  • 匹配的偏移量
  • 完整匹配

所以你可以这样做:

x.innerHTML.replace(/@(\S+)/g,function(string,data1){

 return '<img src="'+get_data(data1)+'">'+data1+'</img>');

});

这是MDN Docs on replace

答案 1 :(得分:0)

这会有用吗?

var str = x.innerHTML.replace(/@(.*?)/g, "$1");
var img = '<img src="'+get_data(str)+'">'+str+'</img>';