我在 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
}
最好的办法是在没有协议的情况下添加 http(因为这是 url 的默认协议),然后验证 url。
您的要求非常具体,不能一概而论。您正在使用的URLValidator
验证正确。协议字符串(如 http://)的存在是URL 有效的基本要求。根据您的需要,您可以执行以下操作
URLValidator
或使用组合)。URLValidator
以实际验证 URL。