Java 无协议的URL验证
我在java中使用了URLValidator类来验证URL。但我希望,如果用户在URL中不提供任何协议,那么验证也应该作为有效返回 正确解释:如果在URL中提供此选项”http://www.google.com那么它也应该是一个有效的URL,如果提供了“www.google.com”,那么验证也应该作为有效的URL返回 我试了很多,请帮我。Java 无协议的URL验证,java,url,Java,Url,我在java中使用了URLValidator类来验证URL。但我希望,如果用户在URL中不提供任何协议,那么验证也应该作为有效返回 正确解释:如果在URL中提供此选项”http://www.google.com那么它也应该是一个有效的URL,如果提供了“www.google.com”,那么验证也应该作为有效的URL返回 我试了很多,请帮我。 提前感谢。检查这是否适合您: boolean foundMatch = false; try { Pattern regex = Pattern.c
提前感谢。检查这是否适合您:
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有效的基本要求。根据您的需要,您可以执行以下操作
URL验证程序
或使用组合)李>
URLValidator
,以实际验证URL如果没有协议,最好的做法是预先添加http(因为这是url的默认协议),然后验证url。我希望url验证将和www.google.com都视为正确的url。目前我在java中使用URLValidator类,但它返回www.google.com作为无效URL。基本上是修饰URLValidator,