我有以下的正则表达式来检查,看是否有URL是有效的:修改正则表达式以在检查URL时允许IP地址?
preg_match('/^(http(s?):\/\/)?(www\.)?+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/i', $url);
我要修改这部分[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})
(至少我希望它是这个大胆的一部分)是IP地址或本突出部分。
目前,正则表达式对我来说很不错,因为它发现了错误的URL正确 - 尽管我认为一旦ICANN的新域名政策上线后,这将开始无法正常工作(即Google可能想要网址http://search.google - 而不是http://google.com搜索)
无论如何,我想添加允许的IP地址也是一个有效的URL的能力,但我不能确定如何因素是进入正则表达式
如果任何人都可以伸出援手,那就太好了!
您可能想要使用['filter_var('http://example.com',FILTER_VALIDATE_URL)'](http://php.net/manual/en/function.filter-var.php) – NullUserException
I没有意识到PHP内置了URL过滤器 - 感谢您指出了这一点...... – MrJ