【问题标题】:validate url without www. or http://验证没有 www 的 url。或 http://
【发布时间】:2011-01-14 12:33:31
【问题描述】:
我正在寻找验证 URL。我已经有一个脚本验证不允许 www. 和 http:// 但我还需要验证 .co.uk .com 等。
如果他们输入example.co.ukff 之类的内容,我的脚本将不会运行。
我有一个完整的网址:
^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i
我只需要验证结尾.co.uk 或.com 等。
【问题讨论】:
标签:
jquery
regex
validation
url
preg-match
【解决方案1】:
试试这个...
/^http:\/\/|(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/
它完全按照您的要求工作。
不管有没有http://, https://, 和www。
【解决方案2】:
远非将其视为匹配 url 的理想正则表达式,仅匹配 not 以 www 开头的 url 的特殊问题可以通过 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