首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android EditText 即時驗證 Email 格式:修正正則表達式轉義點號

     編輯:程式設計綜合問答

原正則 [a-zA-Z0-9._-]+@[a-z]+.[a-z]+ 中的點號 . 為任意字元,導致 @ 後僅需 3 字元即判定有效。需轉義為 \\.。

修正正則

String emailRegex = "[a-zA-Z0-9._-]+@[a-z]+\\.[a-z]+";

完整驗證邏輯

editText.addTextChangedListener(new TextWatcher() {
    @Override public void afterTextChanged(Editable s) {
        String input = s.toString();
        boolean valid = input.matches(emailRegex) && input.length() > 0;
        hintTextView.setText(valid ? "有效 Email" : "無效 Email");
    }
    @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
    @Override public void onTextChanged(CharSequence s, int start, int before, int count) {}
});

進階:使用 Patterns.EMAIL_ADDRESS

boolean valid = Patterns.EMAIL_ADDRESS.matcher(input).matches(); // API 8+

注意

  • 正則僅做基本格式檢查,無法保證郵箱真實存在。
  • 即時驗證建議在 afterTextChanged 執行,避免游標跳動。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved