主页 > 知识库 > js正则表达式验证URL函数代码(方便多个正则对比)

js正则表达式验证URL函数代码(方便多个正则对比)

热门标签:服务器配置 阿里云 Mysql连接数设置 电子围栏 科大讯飞语音识别系统 银行业务 Linux服务器 团购网站

推荐大家收藏的一段代码,方便同时测试多个正则,查看不同的检测结果,结合chrome完美

核心代码

script>
/**
 * 正则表达式判断网址是否有效
 */
 
(function(){
  "use strict";
 
  var urlDict=[
    //Bad Case
    'www.baidu.com',           //常规网址,未带协议头的地址
    'w.baidu.com',            //常规网址,短子域名
    'baidu.com',             //常规网址,仅有主域名
    '测试.com',              //非常规合法网址,中文域名不在参考之列
    '1.2',                //错误域名
    ' WWWW ',              //无效字符串
    '111测试',              //无效字符串
    //Correct Case
    'http://baidu.com',          //常规网址,仅有主域名
    'http://www.baidu.com',        //常规网址,带子域名
    'https://www.baidu.com/',       //常规网址,使用https协议头,带根目录
    'http://www.baidu.com/api',      //常规网址,有一级目录下资源
    'http://www.subdomain.baidu.com/index/subdir',   //常规网址,多级子域名,多级目录
    'http://www.www.subdomain.baidu.com/index/subdir/',//常规网址,多级子域名,多级目录,目录地址闭合
    'http://io.io'            //非常规网址,多级子域名,多级目录,目录地址闭合
  ];
 
  // 建议的正则
  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_!~*'()-]+\.)*" // 域名- www. 
      + "([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;ij;i++){
        var fn=fnList[i];
        obj[fn.name]=fn.call(null,link);
      }
      return obj;
    };
 
    for(var i=0,j=urlDict.length;ij;i++){
      ret[urlDict[i]]=collect(urlDict[i]);
    }
 
    console.log(ret),console.table(ret);
  }());
 
}());
/script>

调试方法:

将上面的代码保存为test.htm在chrome中运行,打开F12,即可看到效果如下图所示

看了上面的主要是一些检测url的正则了,大家可以参考这篇文章:https://www.jb51.net/article/31550.htm

您可能感兴趣的文章:
  • javascript正则表达式模糊匹配IP地址功能示例
  • js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
  • js正则表达式惰性匹配和贪婪匹配用法分析
  • js Abba逆向前瞻正则匹配实例
  • JS正则子匹配实例分析
  • js匹配网址url的正则表达式集合
  • JavaScript正则表达式解析URL的技巧
  • js正则解析URL参数示例代码
  • JS验证URL函数 正则
  • javascript 获取url参数的正则表达式(用来获取某个参数值)
  • JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)

标签:广元 萍乡 江苏 枣庄 大理 蚌埠 衢州 衡水

巨人网络通讯声明:本文标题《js正则表达式验证URL函数代码(方便多个正则对比)》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266