【问题标题】:How to do Phone number validation in Android?如何在 Android 中进行电话号码验证?
【发布时间】:2015-04-30 04:54:08
【问题描述】:

如何在 EditText for Android 中验证电话号码?

我尝试使用此代码:

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="phone"
    android:ems="10"
    android:id="@+id/editText"
   />

但它不适用于特殊字符。有什么帮助吗?

【问题讨论】:

标签: android


【解决方案1】:

试试这个方法:

private boolean isValidPhoneNumber(String phone) {

    if (!phone.trim().equals("") && phone.length() > 10) {
            return Patterns.PHONE.matcher(phone).matches();
    }

        return false;
}

【讨论】:

  • 应该是 && in that if
  • &gt; 10 似乎太严格了;例如,美国号码通常是 10 位数字,一些英国号码和所有日本号码也是如此。
【解决方案2】:

到目前为止,这是我找到的验证电话号码的最佳解决方案(Kotlin 中的代码,字符串的扩展名)

fun String.isValidPhoneNumber() : Boolean {
    val patterns =  "^\\s*(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: *x(\\d+))?\\s*$"
    return Pattern.compile(patterns).matcher(this).matches()
}

【讨论】:

    【解决方案3】:
    private boolean isValidphone(String bphone) {
        return !TextUtils.isEmpty(bphone) && 
        bphone.length() == 10 && 
        TextUtils.isDigitsOnly(bphone);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 2020-11-08
      相关资源
      最近更新 更多