【问题标题】: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 位数字。

如何为所有三个字段形成我的正则表达式模式..?

【问题讨论】:

    标签: android regex


    【解决方案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

          【讨论】:

          猜你喜欢
          • 2014-06-17
          • 1970-01-01
          • 1970-01-01
          • 2021-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-23
          • 2016-12-23
          相关资源
          最近更新 更多