Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无协议的URL验证_Java_Url - Fatal编程技术网

Java 无协议的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

我在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有效的基本要求。根据您的需要,您可以执行以下操作

  • 创建一个自定义URL验证程序(通过扩展
    URL验证程序
    或使用组合)
  • 在其validate方法中,检查URL的开头是否有协议字符串。如果它不存在,则添加它并调用
    URLValidator
    ,以实际验证URL

  • 如果没有协议,最好的做法是预先添加http(因为这是url的默认协议),然后验证url。

    我希望url验证将和www.google.com都视为正确的url。目前我在java中使用URLValidator类,但它返回www.google.com作为无效URL。基本上是修饰URLValidator,