2012-11-09 67 views
1

我有更多的DIV像這樣:encodeURIComponent方法在正則表達式

<span class="date">Fri November 9, 2012</span> 

所有這些都在一個變種。 例子:

var = ' 
...<span class="date">Fri November 9, 2012</span>... 
...<span class="date">Fri November 9, 2012</span>... 
'; 

我嘗試用包含此日期的圖像來代替每個日期。

我這一行,但這並沒有工作:

ver = ver.replace(/<span class="date">(.*)<\/span>/g,'<span class="date"><img src="generateLink.php?nr='+encodeURIComponent($1)+'" /></span>'); 

我的問題是:我不能在正則表達式使用encodeURIComponent方法

+0

要做到這一點你必須先'match',然後用你的比賽結果進行更換。 – h2ooooooo

+0

它工作沒有編碼。 –

回答

4

使用帶有回調函數替換

ver = ver.replace(/<span class="date">([^<]*)<\/span>/g, 
function($0,$1) { 
    return '<span class="date"><img src="generateLink.php?nr='+encodeURIComponent($1)+'" /></span>' 
}); 

而且可以更簡單

ver = ver.replace(/(<span class="date">)([^<]*)(<\/span>)/g, 
function($0,$1,$2,$3) { 
    return $1+'<img src="generateLink.php?nr='+encodeURIComponent($2)+'" />'+$3 
}); 
+0

注意:最好使用([^ <] *)代替(。*) – Damask