在php和javascript中进行URL验证

时间:2012-02-09 13:00:24

标签: php javascript validation url

我在本网站和其他网站上发现了很多网址验证方法。但我找不到我的项目所需的确切一个。这就是我需要的。

<form name="example" value="">
 <input type='text' name='link' />
<input type="submit" name="submit" id="submit" value="" />    
 </form>

现在,如果有人在文本字段中键入了一个链接,那么我必须检查该链接是否有效。 有效链接将是

1. http://www.example.com
2. www.example.com
3. example.com
4. (some space) then one of the three links above
5. one of the three links above then some space

这些是有效的格式。在文本字段中输入任何其他内容应该给出输出无效链接

我在javascript和PHP中都需要解决方案。

2 个答案:

答案 0 :(得分:1)

这将处理你在php端的所有案例

$regex = "((https?|ftp)\:\/\/)?"; // SCHEME
        $regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"; // User and Pass
        $regex .= "([a-z0-9-.]*)\.([a-z]{2,3})"; // Host or IP
        $regex .= "(\:[0-9]{2,5})?"; // Port
        $regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path
        $regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; // GET Query
        $regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?"; // Anchor


    //    $url = 'http://www.domain.dk/seo/friendly/url';

        if(preg_match("/^$regex$/", trim($url)))
        {
        print 'true';
        }

答案 1 :(得分:-1)

你可以通过以下帖子找到这个javascript url验证答案

http://stackoverflow.com/questions/1303872/url-validation-using-javascript

对于php验证,请在代码

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

if(!isValidURL($fldbanner_url))
{
$errMsg .= "* Please enter valid URL including http://<br>";
}