發現很多都是引用這個判斷:
function IsURL (str_url) { var strRegex = '^((https|http|ftp|rtsp|mms)?://)' + '?(([0-9a-z_!~*\'().&=+$%-]+: )?[0-9a-z_!~*\'().&=+$%-]+@)?' //ftp的user@ + '(([0-9]{1,3}.){3}[0-9]{1,3}' // IP形式的URL- 199.194.52.184 + '|' // 允許IP和DOMAIN(域名) + '([0-9a-z_!~*\'()-]+.)*' // 域名- www. + '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].' // 二級域名 + '[a-z]{2,6})' // first level domain- .com or .museum + '(:[0-9]{1,4})?' // 端口- :80 + '((/?)|' // a slash isn't required if there is no file name + '(/[0-9a-z_!~*\'().;?:@&=+$,%#-]+)+/?)$'; var re=new RegExp(strRegex); return re.test(str_url); }
不過今天就遇到一個問題,驗證的url為: http://cab100002.efileyun.com/downtemp/cab100002/6607703A-6FC4-11E9-BDB8-FE554B8C0275_2.pdf
驗證結果為:false
發現后面的字符含有大小字母,因此改造以上驗證規則增加大小字母的支持:
function IsURL (str_url) { var strRegex = '^((https|http|ftp|rtsp|mms)?://)' + '?(([0-9a-z_!~*\'().&=+$%-]+: )?[0-9a-z_!~*\'().&=+$%-]+@)?' //ftp的user@ + '(([0-9]{1,3}.){3}[0-9]{1,3}' // IP形式的URL- 199.194.52.184 + '|' // 允許IP和DOMAIN(域名) + '([0-9a-z_!~*\'()-]+.)*' // 域名- www. + '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].' // 二級域名 + '[a-z]{2,6})' // first level domain- .com or .museum + '(:[0-9]{1,4})?' // 端口- :80 + '((/?)|' // a slash isn't required if there is no file name + '(/[0-9a-zA-Z_!~*\'().;?:@&=+$,%#-]+)+/?)$'; var re=new RegExp(strRegex); return re.test(str_url); }
————————————————
版權聲明:本文為CSDN博主「hbh112233abc」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hbh112233abc/article/details/90665367