正则表达式以检查链接在图像上是否有效

时间:2019-02-18 08:40:15

标签: jquery

我有一个输入字段,用于输入图像的URL。

现在我要注意,图像正确(语法)并且图像与图像文件匹配。

我尝试过这个

function check_link(url){
   url_validate= /(http(s?):)([/|.|\w|\s|-])*\.(?:jpg|gif|png)/;
   if(!url_validate.test(url)){ return false; }else{  return true; }
}

在某些情况下失败

我该如何更改代码,以便仅在URL具有正确且可能的语法并且文件为图像的情况下才返回该函数?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您缺少对TLD的检查,后接正斜杠:

url_validate = /(http(s?):)([\/|.|\w|\s|-])*\.[A-z]{2,}\/[a-zA-Z0-9]{1,}\.(?:jpg|gif|png)/;

检查TLD的部分是:\.[A-z]{2,}\/ (匹配一个句点,匹配两个到无限次之间的任何字母,匹配一个正斜杠)

然后我检查文件名:

[a-zA-Z0-9]{1,}\.

匹配一次和无限次之间的任何字母数字,匹配一个句点(。)

然后是文件扩展名(如您的示例)

如果仍然不清楚,请选中https://regex101.com/r/IGK58B/1