获取带图像的网址

时间:2013-12-18 13:54:54

标签: javascript regex

我正试图通过文字图片获取网址的位置。

我正在尝试:

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。

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

问题是您的正则表达式从第一个http://到最后一个.png是匹配的。

您需要使用negative lookahead进行正确搜索:

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

此处(?!.*?https?:\/\/)确保仅https?://

匹配关闭.png or .jpg

答案 2 :(得分:1)

你必须使用负向前瞻,如下所示:

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