我知道有人问过这个问题,但有没有人找到比 Apache commons-validator URLValidator 更好的 URL 验证器库或工具,使用 URLConnection 对象(超级昂贵)或正则表达式解决方案?我已经尝试实现所有这些,似乎最好的一个是 apache 库,但它仍然拒绝格式如下的有效 URL:
http://.youtube.com/watch?v=7lu3xMj0HfQ&sns=fb
http://.handelsblatt.com/11635696.html
http://1.kopiyka.club/index/oholoshenya/dim-i-sad/11285.html
我也厌倦了使用谷歌的 Guava 库,但这也不是很好。任何建议,将不胜感激。
出于好奇,这就是我实现 Apache 库版本的方式:
public boolean validateUrl(final String url)
{
final String[] urlSchemes = null;
boolean isValid = false;
final UrlValidator urlValidator = new UrlValidator(urlSchemes, UrlValidator.ALLOW_ALL_SCHEMES);
final String urlText = url;
if(isValid = urlValidator.isValid(urlText))
{
//do nothing valid URL
}
else
{
System.out.printf("URL %s is invalid.", urlText);
System.out.println();
}
return isValid;
}