入力、URL、またはwww.google.com from EditText
in Androidそしてユーザーがクリックする送信するButton
またはEditText
がフォーカスを失ったとき、URLは「www.anyURL.com "...
これどうやってするの? Androidで利用可能な組み込み機能はありますか?
パターンクラスでWEB_URLパターンを使用する
Patterns.WEB_URL.matcher(potentialUrl).matches()
URLが有効な場合はTrue、URLが無効な場合はfalseを返します 。
Android APIレベル8には WEB_URL パターンがあります。ソースを引用すると、RFC 3987のほとんどの部分に一致します。 APIレベルでは、単純にソースからパターンをコピーしてアプリケーションに含めることができますが、パターンとマッチャーの使用方法を知っていると想定しているため、ここでは詳しく説明しません。
また、クラス RLUtil はいくつかの便利なメソッドを提供します、例えば:
メソッドの説明はあまり精巧ではありません。そのため、おそらくソースを見て、どれが目的に最も適しているかを判断するのが最善でしょう。
検証チェックをいつトリガーするかについては、複数の可能性があります:EditTextコールバック関数を使用できます
または TextWatcher を使用します。これはより良いと思います。
使用しないでくださいURLUtil以下のようにURLを検証します。
URLUtil.isValidUrl(url)
なぜなら、「http://」のような文字列が有効ではないURLとして与えられるからです
/**
* 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();
}
あなたのウェブサイトの検証にこの正規表現を使用してください
String WebUrl = "^((ftp|http|https):\\/\\/)?(www.)?(?!.*(ftp|http|https|www.))[a-zA-Z0-9_-]+(\\.[a-zA-Z]+)+((\\/)[\\w#]+)*(\\/\\w+\\?[a-zA-Z0-9_]+=\\w+(&[a-zA-Z0-9_]+=\\w+)*)?$";
//TODO for website validation
private boolean isValidate()
{
String website = txtWebsite.getText().toString().trim();
if (website.trim().length() > 0) {
if (!website.matches(WebUrl)) {
//validation msg
return false;
}
}
return true;
}
RLUtil.isValidUrl は、APIレベル1以降に存在するため機能します。