安卓中用于电子邮件、用户名和手机号码的正则表达式

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.in

n 等

手机号正则表达式:

^[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 请查看该问题的答案。

以上是关于安卓中用于电子邮件、用户名和手机号码的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

Python 正则表达式不适用于 Gmail 正文

php正则表达式验证(邮件地址Url地址电话号码邮政编码)

前端表单验证常用的15个JS正则表达式

最常用的15个前端表单验证JS正则表达式

前端表单验证常用的15个JS正则表达式

JavaScript常用正则表达式