验证网址没有www。或http://

时间:2011-01-14 12:33:31

标签: jquery regex validation url preg-match

我正在寻找验证网址。我已经有一个验证不允许www.http://的脚本,但我还需要验证.co.uk .com等。

如果输入的内容类似example.co.ukff,我的脚本将无法运行。

我有一个完整的网址:

^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i

我只需要验证结束.co.uk.com等。

2 个答案:

答案 0 :(得分:4)

试试这个...

/^http:\/\/|(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/

它正是你想要的。

带有或不带http://, https://,www

答案 1 :(得分:2)

不要假装这是匹配网址的理想正则表达式,只能匹配 www 开头的网址的特定问题可以通过 negative lookahead(?!www\.) 意思是以下文字不应该是 www。

因此,你的正则表达式适应了这种消极的前瞻:

^(?!www\.)[A-Za-z0-9_-]+\.+[A-Za-z0-9.\/%&=\?_:;-]+$

匹配以下网址

google.com
google.com/
goggle.com/q
google.com/q?q=1&h=en
google.co.uk
google.co.uk/
goggle.co.uk/q
google.co.uk/q?q=1&h=en
w.google.com
w.google.com/
w.goggle.com/q
w.google.com/q?q=1&h=en
209.85.149.105
209.85.149.105/
209.85.149.105/q
209.85.149.105/q?q=1&h=en
209.85.149.105:80
209.85.149.105:80/
209.85.149.105:80/q
209.85.149.105:80/q?q=1&h=en
example.domain.bogus.number.of.subdomains/index.htm

但不是那些:

www.google.com
www.google.com/
www.google.co.uk
www.google.co.uk/
www.google.co.uk/q
www.google.co.uk/q?q=1&h=en
http://209.85.149.105/
http://209.85.149.105:80/
http://www.google.com
https://www.google.com
http://google.com
https://google.com