我正在使用此PHP函数来验证URL。
$url = preg_replace("/[^A-Za-z0-9-\/\.\:]/", "", trim($url));
$url = preg_replace('%^(?!https?://www\.).*%', 'http://www\.$0', $url);
但是,这对我来说并不完美。我想要这个控件:
1 - 是以 http:// 还是 https:// 开头的?如果没有,请添加 http (或 https )
2 - 如果它没有子域名,如果它没有 www ,请添加。但如果它有子域名,请不要添加 www 。
示例:
example.com
CONVERT -> http://www.example.com
www.example.com
CONVERT -> http://www.example.com
subdomain.example.com
CONVERT -> http://subdomain.example.com
http://subdomain.example.com
CONVERT -> http://subdomain.example.com
所以,我需要改进我的REGEX模式。但我不能。我怎么用这个?
答案 0 :(得分:0)
从第二个正则表达式中删除www\.
。这将使它适用于子域示例。
如果您想让它更智能,请使用if
和第二个正则表达式检查^(\w+://)?\w+\.\w+$
之前的前缀为http://或额外的www。