取代定表達式的每場比賽我有一個字符串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