帮我验证哪个网址应该接受.me域名

时间:2011-03-17 07:39:53

标签: javascript

var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
     if (tomatch.test(theurl))
     {
         window.alert("URL OK.");
         return true;
     }

我尝试了这个正则表达式代码来验证网址。

当我尝试使用http://about.me验证它时显示错误

4 个答案:

答案 0 :(得分:1)

\.[A-Za-z]{3}替换为\.[A-Za-z]{2,},因此它需要至少2个TLD字符,但也允许更多(例如.info.museum等等!)

您还需要允许使用单字符域名。一些注册管理机构允许它们(例如DENIC / .de)!

答案 1 :(得分:1)

只需更改{3} tp {2,3}

即可
var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,3}/

但是要意识到正则表达式是这样运作的:

http://test.meandmoretext
***************

RegEx匹配的*标记,即使您在匹配后有更多文本,它也会返回“URL OK”。如果你想要一个全字符串匹配

var tomatch= /^http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,3}$/

但也意识到TLDs can go up to 6 characters

答案 2 :(得分:1)

只是添加其他人已经说过的话:

在开头添加^,在结尾添加$,否则即使它只匹配部分字符串也会成功 - 如果你只测试部分输入,那么你'没有做适当的验证。

另一件事是允许HTTPS URL。

另外不要忘记可选端口。

路径!

查询字符串。

哈希部分。

也许你可以在没有基本身份验证用户和密码的情况下离开,但从技术上讲,它可以在那里。

验证网址太多比看起来更难。我甚至不会尝试自己编写正则表达式。可能try the Regex Library,搜索older questions here或Google:url validation javascript

答案 3 :(得分:0)

正则表达式[A-Za-z]{3}的最后一部分表示匹配所有字母{3}表示应该有3个字符。

将其更改为{2,}