我有一个输入字段,用于输入图像的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具有正确且可能的语法并且文件为图像的情况下才返回该函数?
非常感谢。
答案 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