アンドロイドアプリケーションで正規表現を使用して、いくつかのフィールドを検証したいと思います。
ユーザー名:
1
大文字[AZ]、2
数字[0-9]、1
特殊文字any、その後に続く小文字[az]および長さは10
最大文字になります。
電子メールアドレス :
最後に@google.comを含める必要があります
モバイル :
+91で、その後は10桁である必要があります。
3つのフィールドすべての正規表現パターンを作成するにはどうすればよいですか。
emailidの正規表現:
^ [A-Za-z] [A-Za-z0-9] *([._-]?[A-Za-z0-9] +)@[A-Za-z]。[A-Za- z] {0,3} ?. [A-Za-z] {0,2} $
次のように値を受け入れます:
nなど
モバイルの正規表現番号:
^ [7-9] [0-9] {9} $
インドの携帯電話番号に最適です。
固定電話の正規表現番号:
^ [0-9] {3,5}-[2-9] {1} [0-9] {5,7} $
リージョンコードを使用したインドの固定電話番号
例:022-58974658
たとえば、パスワードやメールなどに必要な正規表現を見つけることができます
ユーザー名の場合:
^ [a-z0-9 _-] {3,15} $
^#行の先頭
[a-z0-9_-]#リスト内の文字と記号に一致、az、0-9、アンダースコア、ハイフン
{3,15}#長さは3文字以上、最大長は15文字
$#行の終わり
で:http ://www.mkyong.com/regular-expressions/10-java-regular-expression-examples-you-should-know/
電子メールの検証については、以下のリンクを参照してください。ユーザー名の検証と電話番号の検証のために、コードの一部を変更できます。
public static boolean isEmailValid(String email) {
boolean isValid = false;
String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
CharSequence inputStr = email;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches()) {
isValid = true;
}
return isValid;
}
モバイル :
Must be +91 and after that 10 digit.
^ [7-9] [0-9] {9} $は、携帯電話番号にのみ役立ちます。ただし、国コードの場合は、 ^ [+(00)] [0-9]{6,14}$のような正規表現を使用する必要があり ます。
何かのようなもの
1)
String phoneNumber = "+919900990000"
if(phoneNumber.matches("^[+(00)][0-9]{6,14}$")){
//True
2)
String phoneNumber = "9900990000"
if(phoneNumber.matches("^[+(00)][0-9]{6,14}$")){
//False
前者は国コードが付いているので真ですが、後者は国コードが付いていないので偽です。
Patternsクラスを使用して、電子メール、携帯電話番号などの要素を検証できます。方法は次のとおりです。
public static boolean isValidEmail(CharSequence target) {
return (!TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches());
}
public static boolean isValidMobile(CharSequence target) {
return (!TextUtils.isEmpty(target) && Patterns.PHONE.matcher(target).matches());
}
お役に立てば幸いです。