我在Java中使用了URLValidator类来验证URL。但是,如果用户没有在URL中提供任何协议,则希望仍然返回验证结果为有效。
正确解释:如果在URL中提供了"http://www.google.com",那么它也应该是一个有效的URL,如果提供了"www.google.com",则也应返回验证为有效URL。
我已经尝试了很多。请帮助我解决这个问题。 提前致谢。
我在Java中使用了URLValidator类来验证URL。但是,如果用户没有在URL中提供任何协议,则希望仍然返回验证结果为有效。
正确解释:如果在URL中提供了"http://www.google.com",那么它也应该是一个有效的URL,如果提供了"www.google.com",则也应返回验证为有效URL。
我已经尝试了很多。请帮助我解决这个问题。 提前致谢。
请测试一下是否适用于您:
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
}
您的需求非常具体,不能泛化。您正在使用的URLValidator
验证正确。像http://这样的协议字符串的存在是URL有效的基本要求。对于您的需求,您可以执行以下操作:
URLValidator
或使用组合)。 URLValidator
来实际验证URL。