我想验证已经接受数字的编辑文本。 但我希望只将特定数字作为起始值。 例如:只有7,8和9这样的数字应该被接受作为第一个数字,然后其余9个数字可以是0-9中的任何数字
答案 0 :(得分:1)
/** Number Format Validation method */
public boolean isValidPhoneNumber(String mobile) {
String regEx = "^[7-9][0-9]{9}$";
return mobile.matches(regEx);
}
答案 1 :(得分:0)
您可以使用此功能检查起始字符是否符合您所需的值。
public boolean checkChar(){
char x = edittext.getText().toString().charAt(0);
if(x == '7' || x == '8' || x == '9')
return true;
return false;
}
答案 2 :(得分:0)
您可以使用此功能。
public boolean validate(){
String val = edittext.getText().toString();
if(val.length()!=10)
{
Log.d("TAG","validation failed");
return false; }
char x = val.charAt(0);
if(x == '7' || x == '8' || x == '9')
return true;
return false;
}
答案 3 :(得分:0)
您可以使用TextChangedListener
。
代码:
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (editText.getText().length() == 1) {
String x = editText.getText().toString();
// if the first character isn't equal to 7, 8 or 9 clear the editText
if (!(x == "7" || x == "8" || x == "9")) {
editText.setText("");
}
}
}
});
我没有测试代码,所以如果我忘记了支架或某些东西让我知道。