美文网首页
url正则 有测试用例

url正则 有测试用例

作者: 不要变成发抖的小喵喵喵喵喵喵 | 来源:发表于2017-09-22 13:22 被阅读0次

js匹配网址url的正则表达式集合

方法

// 建议的正则
function isURL(str){
    return !!str.match(/(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\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);
    }
}



测试

<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;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>
控制台输出结果

相关文章

  • url正则 有测试用例

    js匹配网址url的正则表达式集合 方法 测试

  • 软件测试基本流程

    1.需求分析(产品经理) 2.编写测试用例(测什么,怎么测) 3.评审测试用例 4.搭建测试环境 5.等待开发提交...

  • 1.软件测试流程

    1.需求分析 2.编写测试用例(测什么,怎么测) 3.评审测试用例 4.搭建测试环境 5.等待开发提交测试包 6....

  • 可复用测试用例研究(用例库)

    软件测试的关键环节是设计和执行测试用例。测试用例的质量与测试人员的技能、经验以及对被测软件的理解密切相关。如果测...

  • 安全测试

    安全测试用例 常见的安全测试应该能够做到check以下内容 测试用例应该 包含每个HTTP参数的SQL注入测试 测...

  • 用例加载与组织(unittest)

    1. 通过测试套件TestSuite组织测试用例 1.创建测试套件2.测试用例加载到测试套件,加入方式测试类('测...

  • 如何提高测试效率

    个人1.先明确测试流程2.获取有效信息,明确需求3.设计测试用例规范,沟通效率(测试用例八大要素:测试用例编号,测...

  • maven打包

    mvn install命令 1.打包会执行测试用例,如果测试用例报错不通过是打不了包的 2.maven打包时跳过测...

  • 测试用例模板设计需要了解的点

    测试用例是进行测试的最小单元粒度。在编写测试用例之前需要很多准备工作去分析需求,提取测试点,然后根据提取的测...

  • 关于软件定制测试流程

    软件定制的测试流程一般是:制定测试计划-编辑测试用例-执行测试用例-发现问题并且提交bug-开发工程师修正Bug测...

网友评论

      本文标题:url正则 有测试用例

      本文链接:https://www.haomeiwen.com/subject/jpcfextx.html