3

可能重复:
检查字符串是否为有效 URL 的最佳正则表达式是什么?

我有这个验证功能:

function validate_url(url)
    {
        var pattern1= new RegExp(/^((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/);
        var pattern2= new RegExp(/^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*[.][A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*([.][A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*)*$/);
        if (pattern1.test(url) || pattern2.test(url))
            return true;
        else
            return false;
    }

我想检查这些模式的 url 验证:

     * www.example.com
     * http://www.example.com
     * http://example.com
     * http://example.example.com
     * https://www.example.com
     * https://example.com
     * https://example.example.com
     * example.example.com
     * example.com

“.com”是可选的。

实际上,在我测试这个网址之前它一直在工作:

      www,google.com 

它接受逗号!我试图从我的正则表达式中删除它,它仍然接受它!它出什么问题了 ?我为我的案例搜索了一个合适的正则表达式,但它们太大了,并没有给我想要的东西。有什么建议吗?提前致谢

4

0 回答 0