如何在java中验证url?

时间:2014-06-24 10:09:20

标签: java validation jsf-2

我有一个输入文本我必须输入一个链接 我将如何验证该字符串是否是一个URL(链接)。 实施例 -

Pattern p = Pattern
                .compile("(@)?(href=')?(HREF=')?(HREF=\")?(href=\")?(http://)?[a-zA-Z_0-9\\-]+(\\.\\w[a-zA-Z_0-9\\-]+)+(/[#&\\n\\-=?\\+\\%/\\.\\w]+)?");

        Matcher m = p.matcher("https://mail.google.com");
        System.out.println(m.matches());

此代码也给出了错误。我没有得到该代码中的问题 或者请参考另一个逻辑来验证网址 我已经使用了UrlValidator urlValidator = new UrlValidator();
但我不想用这个.jar

这是此方法正确验证的另一种方法,但我的网址不可用。如何查看此要求? 示例 -

public static void main(String[] args) {
        String b = "http://11155555.com/";
        System.out.println(isUrl(b));

    }

    public static boolean isUrl(String str) {
        Pattern urlPattern = Pattern.compile(
                "((https?|ftp|gopher|telnet|file):((//)|(\\\\\\\\))+[\\\\w\\\\d:#@%/;$()~_?\\\\+-=\\\\\\\\\\\\.&]*)",
                Pattern.CASE_INSENSITIVE);
        Matcher matcher = urlPattern.matcher(str);
        if (matcher.find()) {
            return true;
        } else {
            return false;
        }
    }

先谢谢。

1 个答案:

答案 0 :(得分:-1)

试试这个:

 public static boolean isUrl(String str){
    Pattern urlPattern = Pattern.compile("((https?|ftp|gopher|telnet|file):((//)|(\\\\\\\\))+[\\\\w\\\\d:#@%/;$()~_?\\\\+-=\\\\\\\\\\\\.&]*)",Pattern.CASE_INSENSITIVE);
         Matcher matcher = urlPattern.matcher(str);
    if (matcher.find()) 
             return true;
        else
            return false;
}