0

我正在尝试验证 "http:www" 是可选的 url,因此 yahoo.com 和http://www.yahoo.com需要是有效的 url,但使用以下正则表达式不会使 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

4 回答 4

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

在这个正则表达式中,http://www.yahoo.comhttp://yahoo.com和 www.yahoo.com 都是有效的 URL

于 2013-04-25T10:21:33.387 回答
1

只是检查一下。所有的问题都会解决。

var rgx = /^\s*(http\:\/\/)?([a-z\d\-]{1,63}\.)*[a-z\d\-]{1,255}\.[a-z]{2,6}\s*$/;
于 2015-04-08T11:43:52.707 回答
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`!()\[\]{};:'".,<>?«»“”‘’]))
于 2013-04-25T10:13:06.677 回答
0

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

解决方案在这里:负前瞻: http ://www.regular-expressions.info/lookaround.html#lookahead与www案例,你应该得到你正在寻找的东西。让我知道它是怎么回事!

希望它符合您的需求:)

代码

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));
于 2013-04-25T10:23:20.220 回答