2011-02-18 43 views
0

我想所有的URL匹配任意文本里面,有沒有具體的分隔符,並最終在同一條線上的多個項目:後匹配的網址沒有具體的分隔符

http://www.site.com/image1.jpg "http://www.site.com/image2.jpg" 
'http://www.site.com/image1.jpg&a=1' 

請不佔空間第一個網址,並終止&a=1

這是我的實際正則表達式:(https?:\/\/.*\.(?:png|jpg)),只匹配最後一個URL,但第一個和第二個匹配爲一個結果。

預期的結果應該不是這樣的:

http://www.site.com/image1.jpg 
http://www.site.com/image2.jpg 
http://www.site.com/image1.jpg 

感謝。

回答

0

如果它們都以.jpg結尾,使用此正則表達式可以很容易地實現:/[a-zA-Z0-9:\/\.-]+\.jpg/。 我已經添加了更多的url示例來測試比賽。結果是一串匹配。

var str = "http://www.site.com/image1.jpg \"http://www.site.com/image2.jpg\" 'http://www.site.com/image1.jpg&a=1' http://www.21d1dk1kk1.org/image.jpg http://www.21d1dk1-kk1.org/image.jpg"; 

var matches = str.match(/[a-zA-Z0-9:\/\.-]+\.jpg/g); 

,如果你需要匹配,不只是JPG你可以使用(jpg|gif|png)等替代JPG的(如[a-zA-Z0-9:\/\.-]+\.(jpg|gif|png)/g

有,你可以將它輸出要通過任何方式匹配的數組迭代它。但我認爲你知道如何處理這個問題。

+0

謝謝,很好!這樣修改了正則表達式:var items = ht.match(/ https?:\/\/[a-zA-Z0-9:\/\ .--] + \。(jpg | jpeg | png | gif)/gi);`匹配絕對URL,多種文件類型和不區分大小寫。 – Omiod 2011-02-18 22:30:32