我正试图通过文字图片获取网址的位置。
我正在尝试:
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 :(得分: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);