我有点震惊,java不包含开箱即用的好验证库(甚至PHP有!)。
我从apache commons尝试了UrlValidator,但是存在“小”问题 - 它不理解punycode。
(例如,对于下一个url“http:// xn --d1abbgf6aiiy.xn - p1ai /“它给我带来负面结果”
你能推荐一些能够正确验证带有和不带有punycode(只是语法)的网址的lib吗? 感谢。
答案 0 :(得分:3)
非常简单:使用URI
。
try {
URI.create("inputStringHere");
} catch (IllegalArgumentException e) {
// do whatever is needed
}
然而,检查URI本身(主机名等)中的参数取决于您自己。但URI类可以访问每个组件(方案,主机名和诸如此类)。