Android Url合法性校验

android.util.Patterns

/**
 *  Regular expression pattern to match most part of RFC 3987
 *  Internationalized URLs, aka IRIs.  Commonly used Unicode characters are
 *  added.
 */
public static final Pattern WEB_URL = Pattern.compile(
    "((?:(http|https|Http|Https|rtsp|Rtsp):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)"
    + "\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_"
    + "\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?"
    + "(?:" + DOMAIN_NAME + ")"
    + "(?:\\:\\d{1,5})?)" // plus option port number
    + "(\\/(?:(?:[" + GOOD_IRI_CHAR + "\\;\\/\\?\\:\\@\\&\\=\\#\\~"  // plus option query params
    + "\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?"
    + "(?:\\b|$)");

Url合法性校验方法

/**
 * 检查url的合法性
 * @param url
 * @return
 */
public static boolean checkUrl (String url) {
    if (Patterns.WEB_URL.matcher(url).matches()) {
        //符合标准url
        return true;
    } else{
        //不符合标准
        return false;
    }
}

实例

String url = "http://www.baidu.com\n";
LogUtil.i("checkurl:" + checkUrl(url));

output:false

String url = "http://www.baidu.com";
LogUtil.i("checkurl:" + checkUrl(url));

output:true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,913评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,489评论 2 45
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 想些什么又不知道写些什么。 有时候,真的是会莫名的烦躁,就好像是有时候会突然明白好多事,变得很温柔的对立面一样,...
    九八年老关阅读 174评论 0 0
  • 1感恩爱美丽早上做的冰粉早餐,感恩做的牛排午餐,味道棒极了!感恩做的晚餐! 2感恩老公今天下班特意过来接我们回去,...
    SunflowerEleven阅读 112评论 0 0