我在java中使用了URLValidator类来验证URL。但我希望如果用户不在URL中提供任何协议,那么验证应该返回为有效。
正确解释:如果这是在网址“http://www.google.com”中提供的,那么它也应该是有效的网址,如果提供了“www.google.com”,那么验证也应该返回为有效URL。
我已经尝试了很多。请帮助我。 在此先感谢。
答案 0 :(得分:4)
检查这是否适合您:
boolean foundMatch = false;
try {
Pattern regex = Pattern.compile("\\b(?:(https?|ftp|file)://|www\\.)?[-A-Z0-9+&#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]\\.[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
Matcher regexMatcher = regex.matcher(subjectString);
foundMatch = regexMatcher.matches();
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
答案 1 :(得分:0)
您的要求非常具体,不能一概而论。您正在使用的URLValidator
正确验证。 协议字符串(如http://)的存在是基本要求,以使URL有效。根据您的需要,您可以执行以下操作
URLValidator
或使用合成)。 URLValidator
来实际验证URL。答案 2 :(得分:0)
如果没有协议然后验证网址,那么最好的做法是预先添加http(因为这是网址的默认协议)。