它将返回 True if URL is valid 和 false if URL is invalid .
答案很长
从Android API等级8开始,有一个WEB_URL模式 . 引用来源,它"match[es] most part of RFC 3987" . 如果您的目标是较低的API级别,则只需从源代码中复制该模式并将其包含在您的应用程序中 . 我假设你知道如何使用模式和匹配器,所以我不会在这里详细介绍 .
/**
* This is used to check the given URL is valid or not.
* @param url
* @return true if url is valid, false otherwise.
*/
private boolean isValidUrl(String url) {
Pattern p = Patterns.WEB_URL;
Matcher m = p.matcher(url.toLowerCase());
return m.matches();
}
4 回答
简答
在Patterns Class中使用WEB_URL模式
它将返回 True if URL is valid 和 false if URL is invalid .
答案很长
从Android API等级8开始,有一个WEB_URL模式 . 引用来源,它"match[es] most part of RFC 3987" . 如果您的目标是较低的API级别,则只需从源代码中复制该模式并将其包含在您的应用程序中 . 我假设你知道如何使用模式和匹配器,所以我不会在这里详细介绍 .
类URLUtil也提供了一些有用的方法,例如:
isHttpUrl()
isValidUrl()
这些方法的描述并不十分精细,因此您最好查看来源并找出哪一个最适合您的目的 .
至于何时触发验证检查,有多种可能性:您可以使用EditText回调函数
onFocusChanged(),或
onTextChanged()
或使用TextWatcher,我认为会更好 .
DON'T USE URLUtil 验证URL如下 .
因为它将像“http://”这样的字符串作为有效的URL而不是真的
URLUtil.isValidUrl将起作用,因为它自api级别1起存在 .
或者你可以use good old
Regex
我并不是说
Patterns.WEB_URL
是坏的,它只是让它匹配,什么不匹配 .