Android Url正当性検査

1446 ワード

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;
    }
}

≪インスタンス|Instance|emdw≫
String url = "http://www.baidu.com
"; LogUtil.i("checkurl:" + checkUrl(url)); output:false String url = "http://www.baidu.com"; LogUtil.i("checkurl:" + checkUrl(url)); output:true