正则表达式匹配图片的url

Jun*_*Lee 5 javascript regex url

我想匹配以“//”开头并以“.jpg”或“.png”或“gif”结尾的图像网址。所以我做了以下正则表达式,它有效,但并非所有情况..

var pattern = /\/{2}.+?\.(jpg|png|gif)/gm;
Run Code Online (Sandbox Code Playgroud)

问题是,它也匹配看起来像这样的东西,

// pm.pstatic.net/dist/css/nmain.20201119.css"> <link rel="apple-touch-icon-precomposed" Sizes="114x114" href="https://s.pstatic.net/静态/www/u/2014/0328/mma_204243574 .png

这显然不是我想要的。我需要匹配最后出现的“//”和“.png”或“.jpg”或“gif”的惰性匹配。在这种情况下,它将是//s.pstatic.net/static/www/u/2014/0328/mma_204243574.png

我应该用什么来解决这个问题?

+编辑

我想要抓取的网站包含图像网址,如下所示。

<a href="javascript:;" 样式=“背景:url(//gd4.alicdn.com/imgextra/i4/2748816012/O1CN01gbXzeB1uHXhQ9eTVd_!!2748816012.jpg_30x30.jpg)

所以普通的图像 url 匹配器不起作用。

另外,它必须是“.jpg”的惰性匹配,因为正如您在上面的网址中看到的,它的图像地址类似于//gd4.alicdn.com/imgextra/i4/2748816012/O1CN01gbXzeB1uHXhQ9eTVd_!!2748816012.jpg_30x30.jpg

它需要在第一次出现“.jpg”时结束,否则我只会刮掉我不想要的 30x30 小图像。在这种情况下,我想要的img url是,//gd4.alicdn.com/imgextra/i4/2748816012/O1CN01gbXzeB1uHXhQ9eTVd_!!2748816012.jpg

anu*_*ava 3

您可以尝试这个正则表达式:

/\/\/(\S+?(?:jpe?g|png|gif))/ig
Run Code Online (Sandbox Code Playgroud)

正则表达式演示

正则表达式详细信息:

  • \/\/: 匹配//
  • (:开始捕获组#1
  • \S+?:匹配 1+ 个非空格(惰性)
  • (?:jpe?g|png|gif): 匹配jpg, jpeg,pnggif
  • ):结束捕获组