2011-10-06 59 views
0

我匹配的圖像的URL在JavaScript中以下正則表達式在字符串中:匹配URL的不具有特定的前綴

/\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(\.(jpe?g|png|gif))/ig 

與功能與string.replace,我的包裹裏 - 標記全部比賽。

第二步我想匹配所有網址,其中不是有上述文件擴展名爲前綴。我的第一個意圖是使用這樣的?! - 運營商:

/\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(?!\.(jpe?g|png|gif))/ig 

不幸的是,這沒有工作。嘗試了這種表達方式的不同變化,但現在的結果。

感謝提前任何幫助, 曼努埃爾

回答

0

既然你問了JavaScript,我覺得這樣的事情可以幫助:

var url_re = "\\b(https?|ftp|file):\\/\\/[\\-A-Z0-9+&@#\\/%?=~_|!:,.;]*[\\-A-Z0-9+&@#\\/%=~_|]?" 
var re = new RegExp("^(?!.*"+url_re+"\.(jpe?g|png|gif)).*"+url_re+"\.[a-z0-9_]+" , 'gi') 
+0

如果我的字符串只包含一個URL,它會工作。但我有一個字符串與文本,這可能不包含,一個或多個網址......感謝您的建議 – manu

+0

看到我的新答案,如果它可以幫助你嗎? –

+0

不起作用...用regexpal.com測試過;似乎只匹配一個url,並且只有它的字符串內只有一個東西 – manu