我想用Js / HTML获取一些图像的URL:
var a = "http://sub.domain.com/uploads/files/11-11-2011/345301-574-1182-393/2202.jpg";
var b = "http://sub.domain.com/uploads/files/23-11-2011/234552-574-2321-232/asd.png";
寻找能够检测图像网址的解决方案。所以输出将是:
http://sub.domain.com/uploads/files/11-11-2011/345301-574-1182-393/2202.jpg
http://sub.domain.com/uploads/files/23-11-2011/234552-574-2321-232/asd.png
谢谢!
答案 0 :(得分:27)
根据您提供的信息,这应该有效:
(https?:\/\/.*\.(?:png|jpg))
您可以在|ext
之后添加jpg
来添加更多扩展程序。这将允许包含https
的字符串。
注意:您可能希望使用不区分大小写的修饰符i
来使捕获更具包容性。这看起来像是:
/(https?:\/\/.*\.(?:png|jpg))/i
答案 1 :(得分:9)
派对有点晚了,但是在尝试做类似于OP的事情时,我创建了以下正则表达式,它似乎处理相对链接以及绝对链接:
/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i
答案 2 :(得分:3)
试试这个:
/"(http://[^"]*?\.(jpg|png))"/g
$ 1就是你想要的。
答案 3 :(得分:0)
对此的超严格解决方案是:
/(http[s]*:\/\/)([a-z\-_0-9\/.]+)\.([a-z.]{2,3})\/([a-z0-9\-_\/._~:?#\[\]@!$&'()*+,;=%]*)([a-z0-9]+\.)(jpg|jpeg|png)/i
答案 4 :(得分:0)
我几天前创建了这个正则表达式:
/^https?:\/\/.*\/.*\.(png|gif|webp|jpeg|jpg)\??.*$/gmi
本文中其他人提供的有效,但不会检查查询字符串
这个正则表达式的例子:
static checkForImage(url){
let regex = /^https?:\/\/.*\/.*\.(png|gif|webp|jpeg|jpg)\??.*$/gmi
let result;
if (url.match(regex)){
result = {
match: url.match(regex)
}
} else {
result = false;
}
return result;
}
checkForImage('https://images-ext-2.discordapp.net/external/yhycJKw8ohsysnU6CBDLQPV4979oQINVmv-fRfu-jL8/%3Fsize%3D2048/https/cdn.discordapp.com/avatars/490535372393021469/a_9e9d0e575eee0221e759257e259681af.gif')
答案 5 :(得分:-1)
var regex = /(http [s]?://。*。(?:png | jpg | gif | svg | jpeg))/ i;
这是你想要的结果