取代定表达式的每场比赛我有一个字符串contaning一些HTML标记,像这样:JavaScript的正则表达式 - 用不同的字符串
var html = "<div>
<img src="http://test.com/image1.png" />
<h1>SOME TEXT</h1>
<img src="http://text.com/image2.jpg" />
</div>";
我想更换内部src="..."
所有URL这是确定的,如果我做html = html.replace(/[^-]src\=["|'](.*?)['|"]/g, "SOME_URL");
那么所有src="..."
成为src="SOME_URL"
但现在我想替换每个匹配不同的字符串,从拍摄n阵列,但我遇到了麻烦。
我想我必须使用一个函数进行替换,但不知道如何实现它。
喜欢的东西:
html = html.replace(/[^-]src\=["|'](.*?)['|"]/g, function ($0, $1){ //what do i do here??? });
所以,如果我有:
var arr = [];
arr['http://test.com/image1.jpg']='file1';
arr['http://test.com/test.jpg']='file3';
从上面的HTML字符串将成为:
"<div>
<img src="file1" />
<h1>SOME TEXT</h1>
<img src="http://text.com/image2.jpg" />
</div>"
注意“http://text.com /image2.jpg'不是数组的关键字,所以它不会被替换。
任何帮助表示感谢,提前。
完美!我想我应该在那里分配一些东西(例如$ 0 = arr [$ 1];),应该想到返回......谢谢Fabrizio,救了我的一天! – CrisDeBlonde 2012-03-30 11:19:59
很高兴有用。 – fcalderan 2012-03-30 11:23:49