使用正则表达式验证URL为http:www为可选

时间:2013-04-25 10:10:39

标签: javascript jquery regex

我正在尝试验证“http:www”是可选的网址,因此yahoo.com和http://www.yahoo.com需要是有效网址,但使用以下正则表达式并不会使utl3成为有效网址。 我怎样才能解决这个问题 ??

function checkUrlTest(url){
            var urlregex = new RegExp("^(https?:\/\/www\.)?(^(https?:\/\/www\.)[0-9A-Za-z]+\.+[a-z]{2,5})");

            return urlregex.test(url);
        }
        url3 = "yahoo.com";
        url4 = "www.yahoo.com";

        alert(checkUrlTest(url3));

4 个答案:

答案 0 :(得分:2)

看看吧。所有问题都将得到解决。

var rgx = /^\s*(http\:\/\/)?([a-z\d\-]{1,63}\.)*[a-z\d\-]{1,255}\.[a-z]{2,6}\s*$/;

答案 1 :(得分:1)

(http://)?(www\.)?[A-Za-z0-9]+\.[a-z]{2,3}

在此正则表达式中,http://www.yahoo.comhttp://yahoo.com和www.yahoo.com都是有效的网址

答案 2 :(得分:0)

function validateUrl(value)
{
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return regexp.test(value);
}

如果不试试这个:

(?i)\b((?:(?:[a-z][\w-]+:)?(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

答案 3 :(得分:0)

工作演示 http://jsfiddle.net/fy66p/

解决方案驻留在此处:否定前瞻: http://www.regular-expressions.info/lookaround.html#lookaheadwww案例,您应该得到您想要的内容。 Lemme知道它是怎么回事!

希望它符合您的需求:)

<强>码

function checkUrlTest(url){

    // Try this
    var urlregex = new RegExp("^(?!www | www\.)[A-Za-z0-9_-]+\.+[A-Za-z0-9.\/%&=\?_:;-]+$")

            return urlregex.test(url);
        }
        url3 = "yahoo.com";
        url4 = "www.yahoo.com";

        alert('===> ' + checkUrlTest(url4) + '===> ' + checkUrlTest(url3));