我知道这个问题之前已被多次询问,但似乎没有一个选项对我有用(包括正则表达式和php的filter_var)。我正在寻找一种方法来确保URL在继续之前是有效的可能性,下面是有效URL的示例
google.com
www.google.com
http://www.google.com
https://www.google.com
http://google.com
https://google.com
domain-site.com
google.net
google.ca
google.email
IPs (ex. 198.XX.XXX.XXX)
以下是无效网址
test
http://test
https://test
以下是我试图获得上述结果的链接/内容:
PHP regex for url validation, filter_var is too permisive
filter_var($url_new, FILTER_VALIDATE_URL)
preg_match('#^((https?)://(?:([a-z0-9-.]+:[a-z0-9-.]+)@)?([a-z0-9-.]+)(?::([0-9]+))?)(?:/|$)((?:[^?/]*/)*)([^?]*)(?:\?([^\#]*))?(?:\#.*)?$#i', $toLoad, $tmp)
等
我知道我可以判断一个域是否存在,这可能是最简单的选择,但它也很慢,我更喜欢一个正则表达式解决方案,我可以初步检查域的有效性。
感谢任何帮助!