js正規表示式驗證URL函式程式碼(方便多個正則對比)
推薦大家收藏的一段程式碼,方便同時測試多個正則,檢視不同的檢測結果,結合chrome完美
核心程式碼
<script> /** * 正規表示式判斷網址是否有效 */ (function(){ "use strict"; var urlDict=[ //Bad Case '常規網址,未帶協議頭的地址 'w.baidu.com', //常規網址,短子域名 'baidu.com', //常規網址,僅有主域名 '測試.com', //非常規合法網址,中文域名不在參考之列 '1.2', //錯誤域名 ' WWWW ', //無效字串 '111測試', //無效字串 //Correct Case '常規網址,僅有主域名 '常規網址,帶子域名 '常規網址,使用https協議頭,帶根目錄 '常規網址,有一級目錄下資源 '常規網址,多級子域名,多級目錄 '常規網址,多級子域名,多級目錄,目錄地址閉合 '非常規網址,多級子域名,多級目錄,目錄地址閉合 ]; // 建議的正則 function isURL(str){ return !!str.match(/(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/g); } // 不知道誰寫的簡單版的坑爹正則 function badRegFn(str){ return !!str.match(/(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/g); } //jb51 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_!~*'()-]+\.)*" // 域名- + "([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); //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.length;i<j;i++){ var fn=fnList[i]; obj[fn.name]=fn.call(null,link); } return obj; }; for(var i=0,j=urlDict.length;i<j;i++){ ret[urlDict[i]]=collect(urlDict[i]); } console.log(ret),console.table(ret); }()); }()); </script>
除錯方法:
將上面的程式碼儲存為test.htm在chrome中執行,開啟F12,即可看到效果如下圖所示
看了上面的主要是一些檢測url的正則了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015104/viewspace-2877201/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS正規表示式驗證JS
- JS正規表示式的驗證JS
- js驗證郵箱的正規表示式程式碼JS
- JS常用正規表示式及驗證時間的正規表示式JS
- 郵箱驗證正規表示式程式碼
- 驗證正整數正規表示式程式碼例項
- QQ號碼驗證正規表示式程式碼
- js郵箱驗證正規表示式例項程式碼JS
- 正規表示式驗證Ip地址(絕對正確)
- 強密碼驗證正規表示式密碼
- 最新密碼驗證正規表示式密碼
- 正規表示式驗證工具
- js驗證手機號碼的正規表示式JS
- JS驗證URL正則JS
- 驗證小數正規表示式程式碼例項
- 驗證經緯度格式正規表示式程式碼
- 郵箱驗證正規表示式例項程式碼
- 驗證ip地址正規表示式程式碼例項
- 驗證證書的正規表示式
- ip格式驗證正規表示式
- JS正規表示式驗證數字(非常全)JS
- 解析url地址正規表示式程式碼例項
- 正規表示式數字數字型別驗證程式碼型別
- 驗證郵箱格式正規表示式程式碼例項
- js正規表示式驗證手機,郵箱,身份證JS
- 前端表單驗證常用的25個JS正規表示式前端JS
- [js]正規表示式JS
- js正規表示式JS
- js 正規表示式JS
- Oracle正規表示式函式Oracle函式
- 郵箱地址正規表示式驗證
- javascript常用的驗證正規表示式JavaScript
- 驗證網址合法性的正規表示式程式碼
- C#驗證郵件的正規表示式的程式碼C#
- js正規表示式常用函式詳解(續)JS函式
- js匹配網址url的正規表示式集合JS
- C#驗證是不是正整數 正規表示式C#
- 正規表示式☞相關函式函式