2013-12-18 187 views
1

我試圖從文本中獲取url的位置。通過圖像獲取url的位置

我想它:

var text ="http://www.youtube.com/watch?v=WPFuhbEhsy0 https://www.google.es/images/srpr/logo11w.png"; 

var imgRegexp = /(https?:\/\/.*\.(png|jpg))/ 
var imgFind = text.search(imgRegexp); 

alert(imgFind); 

返回給我一個0,當我希望第二個網址的位置。

+0

這是一個真正的例子嗎? – DontVoteMeDown

+0

這些網址是隨機的,我需要獲取圖片的第一個網址的位置。 – MrVila

回答

1

問題是你的正則表達式匹配從第一個http://到最後一個.png

您將需要使用negative lookahead爲正確的搜索:

var imgFind = text.search(/https?:\/\/(?!.*?https?:\/\/).*?\.(png|jpg)/); 
// 43 

這裏(?!.*?https?:\/\/)確保只有關閉https?://.png or .jpg

+0

謝謝你的工作:) – MrVila

+0

不客氣,很高興它解決了。 – anubhava

1

匹配你必須使用負先行,如:

var regex=new RegExp(/https?:\/\/(?!.*?https?:\/\/).*?\.(png|jpg)/); 
var imgFind=text.search(regex); 
2

您可以更改正則表達式,如下所示:

var text ="http://www.youtube.com/watch?v=WPFuhbEhsy0 https://www.google.es/images/srpr/logo11w.png"; 

var imgRegexp = /(https?:\/\/[\S]+\.(png|jpg))/ 
var imgFind = text.search(imgRegexp); 

alert(imgFind);