4 回答

TA貢獻1802條經驗 獲得超6個贊
如果您想避免為電子郵件驗證創建正則表達式,您可以使用下一個代碼
private void validateEmail() {
String email = emailEditText.getText().toString().trim();
if (PatternsCompat.EMAIL_ADDRESS.matcher(email).matches() &&
(email.endsWith("@gmail.com") || email.endsWith("libraryparadise.com"))) {
setEmail(email);
} else {
displayError();
}
}

TA貢獻1829條經驗 獲得超7個贊
嘗試此代碼來檢查電子郵件驗證 Patterns.EMAIL_ADDRESS.matcher 只需檢查正確的電子郵件模式,例如“ [email protected] ”
String email=emailText.getText().toString();
//check email patterns validation
if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
Toast.makeText(context, "Email not valid", Toast.LENGTH_SHORT).show();
return;
}else{
Toast.makeText(context, "Email not valid", Toast.LENGTH_SHORT).show();
}

TA貢獻1859條經驗 獲得超6個贊
鑒于電子郵件地址的復雜性,目前還沒有一個很好的電子郵件驗證解決方案。
考慮兩部分驗證
1. 驗證電子郵件地址文本是否以“@libraryparadise.com”或“@gmail.com”結尾,并且“@”字符左側有 1 個字符
2. 使用正則表達式驗證電子郵件地址
將這些驗證分解為多個檢查而不是一個大的正則表達式會更容易。如果檢查位于不同的檢查中,未來的開發人員可以閱讀代碼以更輕松地按順序查看檢查。

TA貢獻1866條經驗 獲得超5個贊
您可以使用正則表達式
如果您確定只想要“libraryparadise.com”和“gmail.com”,那么您可以使用兩個正則表達式并像這樣比較它們。
String regex = "^[a-zA-Z0-9_]+(?:\\.[a-zA-Z0-9_]+)*@gmail.com*$";
String regex2 = "^[a-zA-Z0-9_]+(?:\\.[a-zA-Z0-
9_]+)*@libraryparadise.com*$";
Pattern pattern = Pattern.compile(regex);
Pattern pattern2 = Pattern.compile(regex2);
獲取包含文本的視圖
sampleText=findViewById(R.id.sampleText);
然后在條件中的任何地方使用它。
if(pattern.matcher(sampleText.getText().toString().trim()).matches()||
pattern2.matcher(sampleText.getText().toString().trim()).matches()){
//ValidEmail
}
else {
//Invalid Email
}
添加回答
舉報