我想要在一個EditText中驗證一個電子郵件的地址,下邊的代碼是我已經寫了的:
final EditText textMessage = (EditText)findViewById(R.id.textMessage);
final TextView text = (TextView)findViewById(R.id.text);
textMessage.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (textMessage.getText().toString().matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+") && s.length() > 0)
{
text.setText("valid email");
}
else
{
text.setText("invalid email");
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});
問題是當我在@後引用3個字符,它出現提示“有效的郵件地址”,當我填完完整的郵件地址後它必須出現。
謝謝
將你的正則表達式改成下邊這個
"[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+"
因為.的意思是匹配所有的單字符,在你的點前邊添加一個雙反斜槓才代表一個真正的點。