java - 如何验证输入的手机号码?

标签 java android

complete = (Button) findViewById(R.id.complete);
complete.setOnClickListener(new View.OnClickListener() {

        String validNumber = "";

    public void onClick(View v){

        validNumber = phoneNumber.getText().toString();

        if (!validNumber.equals("")){

                final String phoneNumPattern = "^(?=.*[0-9]){10,11}$";  
                Pattern pattern = Pattern.compile(phoneNumPattern);
                Matcher matcher = pattern.matcher(validNumber);     

                 if (matcher.matches() == true){
            Toast.makeText(PhoneNumActivity.this, "Success", Toast.LENGTH_SHORT).show();        
                 }
                 else{
            Toast.makeText(PhoneNumActivity.this, "Failed", Toast.LENGTH_SHORT).show();
                  }
        }
        else{
                 Toast.makeText(PhoneNumActivity.this, "Failed", Toast.LENGTH_SHORT).show();
        }
    }
 });

我正在开发一个安全应用程序,用户需要输入有效的手机号码,我设置了上面的模式,用户只能输入最少 10 位数字和最多 11 位数字。但出现错误

java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 13:

还有一个问题,我可以设置手机号码前两位为01xxxxxxxxxx的模式吗?

最佳答案

使用 EditText 作为输入并为其指定以下 xml 属性:

android:inputType="phone"

用户无法在其中放入无效字符。

对于 01 的模式,您只需检查前 2 个字符是否为“01”

if( phoneNumer.charAt(0)=='0'&&phoneNumber.charAt(1)=='1')

关于java - 如何验证输入的手机号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10616675/

相关文章:

android - 如何实现 uncaughtException android

java - 如何更改本地主机 :8080 to www. myWebApp.com?

java - 可以在两次后续调用 Wea​​kReference.get() 之间对对象进行垃圾回收吗?

java - DJ Native Swing javascript 命令问题

android - 在库中设置断点 Material 成分?

android - 如何在 Android 应用程序中查找 2 个地理点之间的距离(通过公路)?

java - 更改 BlueJ/Java 中的 system.out 字体和颜色

java - 如何从 map 叠加层传递值

android - Google Analytics for iOS 仅在 WiFi 可用时发送跟踪信息,否则发送至缓存

android - ACTION_GET_CONTENT 到 Google 图片