如果是url - preg_match php

时间:2013-04-01 16:58:46

标签: php preg-match preg-match-all

我有这个功能:

function isValidURL($url)
{
    return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}

并且这个函数只返回url而没有WWW,我不知道怎么写这个正则表达式找到我所有的网址用www或没有www,或用www和没有http / s。

TNX!

2 个答案:

答案 0 :(得分:1)

正如其他人所说,你最好坚持使用PHP的过滤器function_var。 但由于你永远不能有足够的正则表达式练习,这里是该解决方案的初始版本:

$regex = '|^(?:https?://)?[a-z0-9%-]+(?:\.[a-z0-9%-]+)*(?::[0-9]+)?(/[a-z0-9%-]+)?$|i'

这仍然需要一些微调,并且目前不会考虑所有允许的网址字符,但它足以朝着正确的方向前进。

答案 1 :(得分:0)

使用内置的filter功能。这是FILTER_VALIDATE_URL