我正在尝试验证TextView,以便它只能包含字母和。
到目前为止,我所做的是它不允许空格而且不能留空,所以如何继续不允许数字和特殊字符除外。
if (PatientInitials.getText().toString().equals(""))
{
final Toast toast = Toast.makeText(getApplicationContext(), "Please enter the patient initials.", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 3000);
}
else if (PatientInitials.getText().toString().matches(".*([ \t]).*"))
{
final Toast toast = Toast.makeText(getApplicationContext(), "Patient initials cannot contain spaces.", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 3000);
}
//Below doesn't work
else if (PatientInitials.getText().toString().matches("/^[A-z]+$/"))
{
final Toast toast = Toast.makeText(getApplicationContext(), "Patient initials cannot contain numbers and special characters.", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 3000);
答案 0 :(得分:0)
试试这个:
EditText state = (EditText) findViewById(R.id.txtState);
Pattern ps = Pattern.compile("^[a-zA-Z ]+$");
Matcher ms = ps.matcher(state.getText().toString());
boolean bs = ms.matches();
if (bs == false) {
if (ErrorMessage.contains("invalid"))
ErrorMessage = ErrorMessage + "state,";
else
ErrorMessage = ErrorMessage + "invalid state,";
}
希望这有帮助。
答案 1 :(得分:0)
你有没有看过android:digits先发制人地将某些角色列入白名单?