我只是想验证url,对于以下两种格式 http://www.XYZ.com 和 www.XYZ.com 我想在Javascript和PHP中使用这个验证脚本。 提前谢谢。
答案 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)