如何確認字串是否為有效的電子郵件格式 | email格式檢查
本文內容 下列範例會使用規則運算式來確認字串是否為有效的電子郵件格式。這個正則運算式相當簡單,可作為電子郵件的實際用途。使用正則運算式來驗證電子郵件有助於確保電子郵件的結構正確無誤,但它並不是確認電子郵件實際存在的替代方法。✔️使用小型的正則運算式來檢查電子郵件的有效結構。✔️會將測試電子郵件傳送至應用程式使用者所提供的位址。❌請勿使用正則運算式作為驗證電子郵件的唯一方式。如果您嘗試建立完美的正則運算式來驗證電子郵件的結構是否正確,則運算式會變得很複雜,因此很難進行debug錯或改進。正...
本文內容下列範例會使用規則運算式來確認字串是否為有效的電子郵件格式。
這個正則運算式相當簡單,可作為電子郵件的實際用途。 使用正則運算式來驗證電子郵件有助於確保電子郵件的結構正確無誤,但它並不是確認電子郵件實際存在的替代方法。
✔️使用小型的正則運算式來檢查電子郵件的有效結構。
✔️會將測試電子郵件傳送至應用程式使用者所提供的位址。
❌ 請勿使用正則運算式作為驗證電子郵件的唯一方式。
如果您嘗試建立 完美 的正則運算式來驗證電子郵件的結構是否正確,則運算式會變得很複雜,因此很難進行 debug 錯或改進。 正則運算式無法驗證電子郵件是否存在,即使它的結構正確。 驗證電子郵件的最佳方式是將測試電子郵件傳送至位址。
警告
當使用 System.Text.RegularExpressions[1] 來處理不受信任的輸入時,請傳遞超時。 惡意使用者可以提供輸入, RegularExpressions 導致拒絕服務攻擊[2]。 使用的 ASP.NET Core framework Api 會 RegularExpressions 傳遞超時。
範例此範例會定義 IsValidEmail 方法, true 如果字串包含有效的電子郵件地址,則會傳回; false 如果沒有,則不會採取其他任何動作。
為了驗證電子郵件地址是否有效, IsValidEmail 方法會以 Regex.Replace(String, String, MatchEvaluator)[3] 規則運算式模式呼叫 (@)(.+)$ 方法,從電子郵件地址分離出網域名稱。 第三個參數是 MatchEvaluator[4] 委派,用於表示處理並取代相符文字的方法。 規則運算式模式解譯如下。
模式 描述 (@) 比對 @ 字元。 這個部分是第一個捕獲群組。 (.+) 比對出現一次或多次的任何字元。 這部分是第二個捕獲群組。 $ 在字串的結尾結束比對。網域名稱會連同 @ 字元一併傳遞至 DomainMapper 方法,該方法會使用 IdnMapping[5] 類別將 US-ASCII 字元範圍以外的 Uni...