js匹配url的正则表达式集
DNS规定域名中的标签由英文字母和数字组成,每个标签不超过63个字符,不区分大小写。除连字符(-)外,标签中不能使用任何标点符号。级别最低的域名写在最左边,级别最高的域名写在最右边。由多个标签组成的完整域名总共不超过255个字符。因此,网站网址的规范化可以如下
方法1:
函数CheckURl(URl StrIng){ if(URl StrIng!=' '){ var reg=/(http | FTP | https): \/\/[\ w \-_](\。[\w\-_] ) ([\w\-\。@?^=3360/~\ #]*[\w\-\@?^=%/~\ #])?/;if(!Reg.test(urlString)){alert('不是正确的URL,请注意检查');}}}方法2:推荐
函数isurl(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);} } var testUrltest URl=' http://harveyzeng . iteye.com/blog/1776991 ';//var TestURl='//www . JB 51 . net/article/1 . htm ';alert(isURl(TestURl));刚刚找到一个多功能测试功能的好代码:
脚本/** *正则表达式判断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);}());}());/脚本运行后,通过chorme的F12检查效果
以上描述主要是关于js函数的编写和判断方法。这里有一些由边肖编译的关于验证网址的正则表达式。你可以参考他们。
正则表达式(http | FTP | https): \/\/[\ w \-_](\ .[\w\-_] ) ([\w\-\ .@?^=3360/~\ #]*[\w\-\@?^=%/~\ #])?匹配http://regxlib.com/Default.aspx | http://电子不匹配www.yahoo.com正则表达式^\\{2}[\w-]\ \([\ w-][\ w-\ s]*[\ w-][$ $]?$)|([\w-][$$]?$)) 匹配\ \ server \ service | \ \ server \ my service | \ \ server _ 001 \ service $不匹配\ \我的服务器\服务| \ \服务器\服务| \ \服务器$ \服务正则表达式^(http|https|ftp)\://([a-za-z0-9\.\-] (\:[a-zA-Z0-9\ .%\$\-] )*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]| 2[0-4][0-9]|[0-1]{ 1 }[0-9]{ 2 } |[1-9]{ 1 }[0-9]{ 1 } |[0-9])|([a-Za-Z0-9 \-]\ .)*[a-zA-Z0-9\-] \ .[a-zA-Z]{2,4})(\:[0-9])?(/[^/][a-zA-Z0-9\.\,\?\ ' \ \/\ % \ $ # \=~ _ \[电子邮件保护]]*)* $匹配http://www.sysrage.net | https://64。81 .85 .161/站点/文件。PHP?cow=moo ' s | FTP ://用户:[电子邮件受保护]:123不匹配sysrage.net正则表达式^([a-za-z]\:|\\\\[^\/\\:*?'|] \\[^\/\\:*?'|] )(\\[^\/\\:*?'|] ) (\.[^\/\\:*?'|] )$ 匹配c : \测试。txt | \ \服务器\共享\测试。txt | \ \服务器\共享\测试。t不匹配c : \测试| \ \服务器\共享| \ \服务器\共享\测试.正则表达式^(http|https|ftp)\://([a-za-z0-9\.\-] (\:[a-zA-Z0-9\ .%\$\-] )*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]| 2[0-4][0-9]|[0-1]{ 1 }[0-9]{ 2 } |[1-9]{ 1 }[0-9]{ 1 } |[0-9])| localhost |([a-Za-Z0-9 \-]\ .)*[a-zA-Z0-9\-] \ .(com | edu |政府| int | mil | net | org | biz | arpa | info | name | pro | aero | coop | museum |[a-Za-Z]{ 2 })(\ :[0-9])*(/($ |[a-Za-Z0-9 \).\,\?\'\\\ %\$#\=~_\-] ))*$ 匹配http://site.com/dir/file.php?var=moo | https://本地主机| FTP ://用户:[电子邮件保护]:21/文件/目录不匹配site.com | http://site.com/dir//正则表达式^([a-za-z]\:)(\\[^\\/:*?'|]*(?[ ]))*(\.[a-zA-Z]{2,6})$匹配c : \ di _ _ _ \ r \ fi _ sysle。txt | c : \ dir \ filename。文本文件(textfile)不匹配c:\dir\file?name.txt正则表达式^([a-za-z0-9]([a-za-z0-9\-]{0,61}[a-za-z0-9])?\.)[a-zA-Z]{2,6}$匹配regexlib.com这是一个博物馆| 3com.com不匹配notadomain .com | helloworld.c | .oops.org正则表达式^(((ht|f)tp(s?))\://)?(www .|[a-zA-Z].)[a-zA-Z0-9\-\ .] \.(com | edu |政府|军事|网络|组织|商业|信息|名称|博物馆|美国|加拿大|英国)(\ :[0-9])*(/($ |[a-Za-Z0-9 \).\,\;\?\'\\\ %\$#\=~_\-] ))*$ 匹配www.blah.com/blah.asp?sort=ASC不匹配www.state.ga | http://www.jb51.ru正则表达式\b(([\w-] :/?|www[.])[^\s()】(?(\)|([^[:punct:]\s]|/)匹配http://jb51.net/blah_blah | http://jb51.net/blah_blah/|(类似http://jb51.net/blah_blah的东西)| http://JB 51。净额/布拉_布拉_(维基百科)|(类似http://JB 51。净额/布拉_布拉_(维基百科))| http://jb51.net/blah_blah. | http://JB 51。净额/布拉_布拉/。| http://jb51.net/blah_blah | http://jb51.net/blah_blah/| http://jb51.net/blah_blah, | http://www.example.com/wpstyle/?p=364. | http://?df.ws/123 | rdar ://1234 | rdar :/1234 | http://用户id :[电子邮件保护]:8080 | http://[电子邮件保护]| http://[电子邮件保护]:8080 | http://用户id :[电子邮件保护]不匹配no _ ws。例子。com | no _ proto _ or _ ws。com |/relative _ resource。服务器端编程语言(Professional Hypertext Preprocessor的缩写)
版权声明:js匹配url的正则表达式集是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。