【发布时间】:2011-11-23 21:38:43
【问题描述】:
我有以下正则表达式来检查 URL 是否有效:
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 可能希望拥有url http://search.google - 而不是 http://google.com 用于搜索)
无论如何,我想添加允许 IP 地址也成为有效 URL 的功能,但我不确定如何将其纳入正则表达式
如果有人能伸出援手,那就太好了!
【问题讨论】:
-
我不知道 PHP 已经内置了 URL 过滤器 - 感谢您指出这一点......