我正在尝试验证“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));
答案 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.com,http://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#lookahead,www
案例,您应该得到您想要的内容。 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));