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/