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
- 正規表示式驗證url的合法性
- URL正規表示式
- 強密碼驗證正規表示式密碼
- 最新密碼驗證正規表示式密碼
- JS正規表示式驗證數字(非常全)JS
- 正規表示式對qq號碼校驗
- 前端表單驗證常用的25個JS正規表示式前端JS
- js正規表示式驗證手機,郵箱,身份證JS
- 正規表示式基本規則
- js正規表示式常用函式詳解(續)JS函式
- 郵箱地址正規表示式驗證
- js匹配網址url的正規表示式集合JS
- js正規表示式速查JS
- “正規表示式”應當稱為“規則表示式”
- 匹配身份證號碼正規表示式
- 正規表示式驗證郵箱及其解析
- 驗證數字的正規表示式集
- 正規表示式(程式碼java版)Java
- 匹配空行正規表示式程式碼
- 一個容易犯錯的js手機號碼驗證正規表示式(推薦)JS
- JS正規表示式入門JS
- JS正規表示式總結JS
- JS助記 ----- 正規表示式JS
- JS基礎:正規表示式JS
- JS中的正規表示式JS
- JS金額正規表示式JS
- 精準驗證手機號碼格式正規表示式
- 匹配URL的正規表示式(推薦)
- 簡單介紹正規表示式拆分url例項程式碼
- 密碼正規表示式密碼
- 驗證數字金額的正規表示式
- 日常收集整理正規表示式驗證大全
- 匹配A股程式碼的正規表示式
- 正規表示式
- 正規表示式.