【发布时间】:2012-08-27 20:49:01
【问题描述】:
我想在我的 android 应用程序中使用正则表达式来验证某些字段。
用户名:
1大写字母[AZ]、2数字[0-9]、1任何特殊字符,然后是小字符[az],长度为10最大字符。
电子邮件地址:
最后必须包含@google.com
手机:
必须是 +91 及之后的 10 位数字。
如何为所有三个字段形成我的正则表达式模式..?
【问题讨论】:
我想在我的 android 应用程序中使用正则表达式来验证某些字段。
1大写字母[AZ]、2数字[0-9]、1任何特殊字符,然后是小字符[az],长度为10最大字符。
最后必须包含@google.com
必须是 +91 及之后的 10 位数字。
如何为所有三个字段形成我的正则表达式模式..?
【问题讨论】:
您可以使用 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());
}
希望对你有帮助。
【讨论】:
手机:
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
第一个是真的,因为它带有国家代码,但第二个是错误的,因为它没有附加任何国家代码。
【讨论】:
电子邮件 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}$
接受以下值:
n 等
手机号正则表达式:
^[7-9][0-9]{9}$
非常适合印度手机号码。
固定电话号码的正则表达式:
^[0-9]{3,5}-[2-9]{1}[0-9]{5,7}$
用于印度地区代码的固定电话号码
例如:022-58974658
【讨论】:
aaa@%§,不确定它是一个有效的电子邮件地址!
例如,您可以找到密码、电子邮件等所需的正则表达式
对于用户名:
^[a-z0-9_-]{3,15}$
^ # 行首
[a-z0-9_-] # 匹配列表中的字符和符号,a-z, 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;
}
【讨论】:
请参阅下面的电子邮件验证链接,您可以修改部分代码以进行用户名验证和电话号码验证。
【讨论】: