2011-07-11 116 views
6

我正在使用jQuery,我試圖編寫一個模式替換,但它不起作用。我有這樣的:JavaScript正則表達式替換不工作,但字符串替換工程

var $featured_rewrite = $('#featured').not('.slideshow'); 
$featured_rewrite.children().attr('href', $featured_rewrite.find('img').attr('src').replace('/-[0-9]+x[0-9]+\./i', '.')); 

我不明白爲什麼這樣的作品:

.replace('-500x277.', '.') 

但不是這個,我甚至用工具檢查並確定它是有效的和工作原理:

.replace('/-[0-9]+x[0-9]+\./i', '.') 

回答

35

'/-[0-9]+x[0-9]+\./i'是一個字符串。

/-[0-9]+x[0-9]+\./i是正則表達式。

"hi".match('/hi/') // returns null 
"hi".match(/hi/) // returns ["hi"] 

編輯:此外,僅僅是明確的,沒有什麼錯比其他報價的正則表達式。如果您需要替換多個匹配項,您可能需要考慮使用/g(即末尾的/gi),但就是這樣。

+0

+1布賴恩,好趕 – kobe

+1

這幫了我,謝謝。 – RTF

+0

呃,在試驗和重讀手冊上浪費了時間,直到我來到這裏才注意到沒有「'。 – Sandman4