2009-07-31 17 views
1

我需要驗證一個電子郵件地址,該電子郵件地址將發送給幾個可能的州和聯邦機構,如果該電子郵件地址不符合其驗證要求,每個機構都可能拒絕整個表單。 (有些拒絕完全合法的字符,而其他人完全不進行驗證,還有人甚至不支持電子郵件地址字段)複雜的電子郵件地址驗證

我的選擇是:

  1. 創建一個單一的地址驗證這是incredibily嚴格。
  2. 爲主條目創建一個非常鬆散的驗證器,然後在每個代理髮送每個表單之前根據需要使用自定義驗證器重新驗證。
  3. 我沒有想到的東西?

我傾向於第二個,儘管這意味着更多的工作,因爲它不會強制用戶創建額外的電子郵件帳戶,除非某個特定機構拒絕接受他們的正常帳戶。

我知道如果他們拒絕一個完全合法的電子郵件地址,但是要求解決這些問題需要一段時間才能得到答案,並且出現問題時客戶不會責怪該代理機構,軟件。 (即使它自己的印刷錯誤)

回答

3

第二種選擇是明確的選擇:一個巨大的驗證器(無論是代碼,正則表達式,基於規則的任何)將是一個噩夢來支持和擴展。此外,它的價格低於20%,因爲它違反了S和O.

2

我更喜歡第二個,因爲如果一個機構改變了它的驗證要求,它更容易修改你的代碼。

此外,增加新的代理機構相當容易。

1

我肯定會選擇第二種選擇。有一個非常通用的驗證器進行初始檢查。然後爲每個代理商分配更小的驗證器。更多的工作在前面,但更容易維護。就像Oxymoron說的那樣,如果一個機構改變了他們有效的電子郵件要求,你只能改變一個驗證器。添加新代理機構或刪除代理機構也很少。它適用於低耦合,高內聚原理。