使用javascript和php验证URL

时间:2009-06-16 09:02:30

标签: php javascript

我只是想验证url,对于以下两种格式 http://www.XYZ.com 和 www.XYZ.com 我想在Javascript和PHP中使用这个验证脚本。 提前谢谢。

3 个答案:

答案 0 :(得分:3)

正则表达式就像一个冠军。

你可以自己写一个,这是一个简单的例子:

(https?://)?.+$

在更严格的验证方面,有点谷歌搜索发现了一些更特别的东西:

^(https?://)?(([0-9a-z_!'().&=$%-]: )?[0-9a-z_!'().&=$%-]@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!'()-]\.)([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,4})?((/?)|(/[0-9a-z_!*'().;?:@&=$,%#-])/?)$

来源:http://www.geekzilla.co.uk/view2D3B0109-C1B2-4B4E-BFFD-E8088CBC85FD.htm (显然,测试复制和粘贴的正则表达式,就像使用任何复制粘贴代码一样)

如果您不知道如何在PHP中使用正则表达式,那就简单如下:

$valid = preg_match($pattern, $urlOrStringToValidate);

其中$ pattern =“/(https?://)?.+/”或类似的东西,在/和/

之间

Javascript在String类型上有一个名为match的对象方法。

var urlString = "http://www.XYZ.com";
var isValidURL = urlString.match(/(https?:\/\/)?.+/);

答案 1 :(得分:3)

您最好使用正则表达式来执行此操作。像这样:

^((ht|f)tp(s?)\:\/\/|~/|/)?([\w]+:\w+@)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?((/?\w+/)+|/?)(\w+\.[\w]{3,4})?((\?\w+=\w+)?(&\w+=\w+)*)?

您可以使用preg_match函数在PHP中使用正则表达式,也可以使用match()函数在JavaScript中使用正则表达式。

E.g(Javascript)。

function validateUrl(url)
{
    var pattern = '^((ht|f)tp(s?)\:\/\/|~/|/)?([\w]+:\w+@)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?((/?\w+/)+|/?)(\w+\.[\w]{3,4})?((\?\w+=\w+)?(&\w+=\w+)*)?';

    if(url.match(pattern))
    {
        return true;
    }
    else
    {
        return false;
    }
}

答案 2 :(得分:1)

使用Jquery validator