【发布时间】:2009-06-16 09:02:30
【问题描述】:
我只想验证 url,对于以下两种格式 http://www.XYZ.com 和 www.XYZ.com 我也想要这个在 Javascript 和 PHP 中的验证脚本。 提前致谢。
【问题讨论】:
标签: php javascript
我只想验证 url,对于以下两种格式 http://www.XYZ.com 和 www.XYZ.com 我也想要这个在 Javascript 和 PHP 中的验证脚本。 提前致谢。
【问题讨论】:
标签: php javascript
正则表达式就像一个冠军。
你可以自己写一个,这里有一个简单的例子:
(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?:\/\/)?.+/);
【讨论】:
您最好使用正则表达式来执行此操作。像这样的:
^((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+)*)?
您可以在 PHP 中使用 preg_match 函数和在 JavaScript 中使用 match() 函数来使用正则表达式。
例如(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;
}
}
【讨论】:
【讨论】: