【发布时间】:2018-05-15 05:25:58
【问题描述】:
如何检查 URL 是否有效。
Patterns.WEB_URL.matcher(urlString).matches() returns false 适用于 android 版本 5 及以下版本。
还有,各种链接说URLUtil.isValidUrl(urlString)不好用。
【问题讨论】:
如何检查 URL 是否有效。
Patterns.WEB_URL.matcher(urlString).matches() returns false 适用于 android 版本 5 及以下版本。
还有,各种链接说URLUtil.isValidUrl(urlString)不好用。
【问题讨论】:
您的解决方案是:
URLUtil.isValidUrl(url);
或者如果上面的代码不起作用,你可以使用。
Patterns.WEB_URL.matcher(url).matches();
【讨论】:
不应使用 URLUtil 来验证 URL,如下所示。
URLUtil.isValidUrl(url)
因为它提供了像“http://”这样的字符串作为不正确的有效 URL
更好的方法是
Patterns.WEB_URL.matcher(potentialUrl).matches()
如果 URL 有效则返回 True,如果 URL 无效则返回 false。
【讨论】:
您可以使用两种方法检查 Url 是否有效
URLUtil.isValidUrl(url)
问题是:它为 "http://" 返回 true,这是错误的
第二种方法是
Patterns.WEB_URL.matcher(potentialUrl).matches();
【讨论】:
或者你可以使用两者的组合:)
fun isUrlValid(url: String?): Boolean {
url ?: return false
return Patterns.WEB_URL.matcher(url).matches() && URLUtil.isValidUrl(url)
}
【讨论】: