我已经通过所有可能的方式来获取url验证的正则表达式, 但我没有得到任何.. 我需要的是网址可以像
google.com
http://google.com
https://google.com
http://www.google.com
https://www.google.com
但如果它只是google
最后,问题是.extensions
是强制性的
我试过这个/^[a-z0-9-]+(.[a-z0-9-]*)(.[a-z0-9-]*)$/
答案 0 :(得分:8)
您可以使用filter_var
和FILTER_VALIDATE_URL
if (filter_var($url, FILTER_VALIDATE_URL) !== false)
修改强>
使用正则表达式
$subject = "http://www.google.com";
$pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i";
preg_match($pattern, $subject, $matches);
print_r($matches);
Array ( [0] => http://www.google.com )
答案 1 :(得分:5)
试试这个表达式
/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi
它将接受您上面提到的所有案件
答案 2 :(得分:1)
((https?:|[^.])\/\/w{0,3}[.]?google.[a-z]{2,4})|google.[a-z]{2,4}
它不是最漂亮的但是有效。我已查看http://regexpal.com/
答案 3 :(得分:0)
您可以尝试以下
(^(http|https)://)?(www\.)?\w+\.com
答案 4 :(得分:0)
如果你想创建真正好的域验证器,你应该获得域tld的数据库并对它们进行验证。
Mozilla有这个列表:http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1
的python模块