2011-01-14 59 views
1

我在寻找验证URL。我已经是验证不允许www.http://的脚本,但我还需要验证为.co.uk.com验证没有www的网址。或http://

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

我有这样一个完整的URL:

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

我只需要确认到底.co.uk.com

回答

2

装作这是理想的正则表达式匹配的URL,特定的远(?!www\.):只有匹配的URL里面做WWW开始的问题可以用一个negative lookahead解决这意味着下面的文字不应该是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 
4

试试这个.. 。

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

它的工作正是你想要的。

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

+2

你试过了吗?它与`http://`单独匹配,`[a-z] {2,5}`与TLD匹配非常差,请参阅:https://data.iana.org/TLD/tlds-alpha-by-domain.txt – Toto 2014-10-17 13:01:26

相关问题