我想在我的 android 应用程序中使用正则表达式来验证某些字段。
用户名 :
1
大写字母[AZ],2
数字[0-9],1
任何特殊字符,然后是小字符[az],长度为10
最大字符。
电子邮件地址 :
最后必须包含@google.com
移动的 :
必须是 +91 及之后的 10 位数字。
如何为所有三个字段形成我的正则表达式模式..?
电子邮件 ID 的正则表达式:
^[A-Za-z][A-Za-z0-9]*([._-]?[A-Za-z0-9]+) @[A-Za-z] .[A-Za- z]{0,3}?.[A-Za-z]{0,2}$
接受值为:
等
手机号正则表达式:
^[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 , underscore , hyphen
{3,15} # 长度至少 3 个字符,最大长度 15
$ # 行尾
在:http ://www.mkyong.com/regular-expressions/10-java-regular-expression-examples-you-should-know/
移动的 :
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
第一个是真的,因为它带有国家代码,但第二个是错误的,因为它没有附加任何国家代码。
请参阅下面的电子邮件验证链接,您可以修改部分代码以进行用户名验证和电话号码验证。
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;
}
您可以使用 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());
}
希望它会帮助你。