js 正則匹配URL,網址,帶端口,帶query的


function isURL(url) {
  
  const strRegex = '^((https|http|ftp)://)?'//(https或http或ftp):// 可有可無
  + '(([\\w_!~*\'()\\.&=+$%-]+: )?[\\w_!~*\'()\\.&=+$%-]+@)?' //ftp的user@ 可有可無
  + '(([0-9]{1,3}\\.){3}[0-9]{1,3}' // IP形式的URL- 3位數字.3位數字.3位數字.3位數字
  + '|' // 允許IP和DOMAIN(域名)
  + '(localhost)|'    //匹配localhost
  + '([\\w_!~*\'()-]+\\.)*' // 域名- 至少一個[英文或數字_!~*\'()-]加上.
  + '\\w+\\.' // 一級域名 -英文或數字 加上.
  + '[a-zA-Z]{1,6})' // 頂級域名- 1-6位英文
  + '(:[0-9]{1,5})?' // 端口- :80 ,1-5位數字
  + '((/?)|' // url無參數結尾 - 斜桿或這沒有
  + '(/[\\w_!~*\'()\\.;?:@&=+$,%#-]+)+/?)$';//請求參數結尾- 英文或數字和[]內的各種字符
  const re = new RegExp(strRegex, 'i'); // 大小寫不敏感
  if (re.test(encodeURI(url))) {
    return true;
  }
  return false;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM