公告
  
重要通知:网站网络变更中可能出现站点图片无法加载的问题,点击此处可解决!
更多资讯可访问:点击查看消息详情!

朕已阅

JS验证URL正则表达式

admin 千秋月 关注 管理组 论坛神话
发表于程序代码版块 技术杂文
JS验证URL正则表达式

/**
 * 正则表达式判断网址是否有效
 */

(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);
    }

    // 测试用例覆盖
    (function () {
        var ret = {};

        var collect = function (link) {
            var obj = {}, fnList = [isURL, badRegFn];
            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);
    }());

}());

评论列表 评论
发布评论

评论: JS验证URL正则表达式



点击进入免费吃瓜群!吃大瓜! 广告位支持代码、文字、图片展示 Image


免责声明
本站资源,均来自网络,版权归原作者,所有资源和文章仅限用于学习和研究目的 。 不得用于商业或非法用途,否则,一切责任由该用户承担 !

请求资源或报告无效资源,请点击[反馈中心]


侵权删除请致信 E-Mail:chengfengad@gmail.com
已有0次打赏
(0) 分享
分享
取消