推荐一段大家都收集的代码,方便同时测试多个规律,查看不同的测试结果,完美结合chrome
核心代码
脚本/** *正则表达式判断URL是否有效*/(function(){ '使用strict ';var URL dict=[//bad case ' www.baidu.com ',//常规URL,无协议头地址' w . baidu.com ',//常规URL,短子域名' Baidu.com ',//常规URL,仅主域名' test.com ',//非常规合法URL//错误域名' WWWW ',//无效字符串' 111 test ',//无效字符串//correctcase' http://baidu.com ',//常规网址,仅主域名' https://www.baidu.com/',//regular网址,子域名' https://www.baidu//建议的正则函数isURL(str){ return!str.match(/(((^https?(?//)?)(?[-;= $,w][emailprotected])?[A-Za-z0-9。-] |(?www。|[-;= $,w][emailprotected])[A-Za-z0-9。-] )((?/[ ~%/.w-_]*)??(?[-=;%@.w_]*)#?(?[w]*)?)$/g);}//不知道是谁写的pitman正则函数badRegFn(str)的简单版{ return!str.match(/(http[s]?|ftp)://[^/.] ?. w $/g);}//JB 51 function is URL(str _ URL){ var strregex='^((https|http|ftp|rtsp|mms)?//)' '?(([0-9a-z_!~*'().=$%-] : )?[0-9a-z_!~*'().=$%-][emailprotected])?//ftp的[电子邮件保护]'([0-9]{ 1,3} 。){3} [0-9] {1,3 } '//IP-199 . 194 . 52 . 184“|”形式的URL允许IP和DOMAIN(域名)'([0-9a-z ~ *)(-)]。)*//域名-www。([0-9a-z][0-9a-z-]{0,61})?' 0-9a-z] '//二级域名“[a-z] {2,6 })”//一级域名-。com或. museum' (: [0-9] {1,4})?//端口-:80 '((/?)|' //如果没有文件名就不需要斜杠'(/[0-9a-z_!~*'().@=$,%#-] ) /?)$';var re=new RegExp(Strregex);//re . test()if(re . test(str _ URL)){ return(true);} else { return(false);} }//测试用例覆盖率(function(){ var ret={ };var collect=function(link){ var obj={ },fnList=[isURL,badRegFn,isURL];for(var i=0,j=fnList.lengthij;I){ var fn=fnList[I];obj[fn.name]=fn.call(null,link);}返回obj};for(var i=0,j=urlDict.lengthij;I){ ret[URL dict[I]]=collect(URL dict[I]);} console.log(ret),console . table(ret);}());}());/script调试方法:
将上面的代码保存为test.htm并在chrome中运行。打开F12,可以看到如下图所示的效果
看完以上,我们主要检查网址的规律性。可以参考本文://www . JB 51 . net/article/31550 . htm。