2013-07-15 40 views
3

我正在處理nodejs CMS,用戶在上傳後在HTML文件中處理帖子,用戶在本地寫Markdown博客文章。有時用戶會通過複製圖像和寫作就像my dog.jpg添加圖片的帖子:如何更改降價字符串中的圖片網址

![a picture of my dog](my dog.jpg) 

我用uslug所有文件名轉換使my dog.jpg變得my-dog.jpg。不過,我還需要使用uslug更新blogpost中的鏈接,因爲a)否則鏈接會因爲我們剛更改文件名而中斷b)因爲大多數Markdown解析器節點會因爲空白而跳過上面的圖像語法(而圖像在許多本地的Markdown編輯器中得到預覽,如Mou)。

有誰知道我可以如何使用正則表達式來實現?

回答

7

你需要大量的斜槓:

string.replace(/(!\[.*?\]\()(.+?)(\))/g, function(whole, a, b, c) { 
    return a + addDashesOrWhatever(b) + c; 
}); 
+0

那請問選擇URL,但它也選擇了'[]('部分(我不能切斷,並再次因爲運的追加!可選的alt)。是否有可能只選擇圖片標籤內的網址? – askmike

+0

您也可以將前綴和後綴放入捕獲組中,然後單獨訪問它們並連接結果,我已經更新了答案。 –