安卓中用于电子邮件、用户名和手机号码的正则表达式
Posted
技术标签:
【中文标题】安卓中用于电子邮件、用户名和手机号码的正则表达式【英文标题】:Regex in android for email,username & mobile number 【发布时间】:2012-08-27 20:49:01 【问题描述】:我想在我的 android 应用程序中使用正则表达式来验证某些字段。
用户名:
1
大写字母[AZ]、2
数字[0-9]、1
任何特殊字符,然后是小字符[az],长度为10
最大字符。
电子邮件地址:
最后必须包含@google.com
手机:
必须是 +91 及之后的 10 位数字。
如何为所有三个字段形成我的正则表达式模式..?
【问题讨论】:
【参考方案1】:您可以使用 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());
希望对你有帮助。
【讨论】:
【参考方案2】:手机:
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
第一个是真的,因为它带有国家代码,但第二个是错误的,因为它没有附加任何国家代码。
【讨论】:
【参考方案3】:电子邮件 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$
接受以下值:
hdf4.j8k@bfv.djf ds.sd@c25v.fdv dv_sdv@fvv vdf-f@jn.fdv jfk@mbf.khb.inn 等
手机号正则表达式:
^[7-9][0-9]9$
非常适合印度手机号码。
固定电话号码的正则表达式:
^[0-9]3,5-[2-9]1[0-9]5,7$
用于印度地区代码的固定电话号码
例如:022-58974658
【讨论】:
把用户名和手机号码的正则表达式也放进去。 这个正则表达式匹配aaa@%§
,不确定它是一个有效的电子邮件地址!【参考方案4】:
例如,您可以找到密码、电子邮件等所需的正则表达式
对于用户名:
^[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/
【讨论】:
【参考方案5】: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;
【讨论】:
不需要flag,if里面返回true,外面返回false。【参考方案6】:请参阅下面的电子邮件验证链接,您可以修改部分代码以进行用户名验证和电话号码验证。
how-to-check-edittexts-text-is-email-address-or-not
【讨论】:
如何进行特殊字符验证? Validate Special Characters @user1642834 请查看该问题的答案。以上是关于安卓中用于电子邮件、用户名和手机号码的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章