• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    js正则表达式验证URL函数代码(方便多个正则对比)

    推荐大家收藏的一段代码,方便同时测试多个正则,查看不同的检测结果,结合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开头的一切网址)
    上一篇:正则表达式零宽断言详解
    下一篇:asp.net中匹配URL网址的正则表达式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

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