复杂的电子邮件地址验证

时间:2009-07-31 15:15:00

标签: validation

我需要验证一个电子邮件地址,该地址将传输到几个可能的州和联邦机构,如果电子邮件地址不符合其验证要求,每个机构都可能会拒绝整个表单。 (有些人拒绝完全有效的字符,而有些人根本不对其进行验证,有些人甚至不支持电子邮件地址字段)

我的选择是:

  1. 创建一个非常严格的单一地址验证器。
  2. 为主条目创建一个非常宽松的验证器,然后根据需要在传输每个表单之前使用自定义验证器重新验证。
  3. 我没想过的东西?
  4. 我倾向于第二种,即使它意味着更多的工作,因为它不会强迫用户创建额外的电子邮件帐户,除非某个特定机构拒绝接受他们的正常帐户。

    我知道如果他们拒绝一个完全合法的电子邮件地址,这确实是该机构的问题,但是要求修复这些事情需要一段时间才能得到答案,当出现问题时客户不会责怪该机构,他们会责怪软件。 (即使它自己的印刷错误)

3 个答案:

答案 0 :(得分:3)

第二个选项是明确的选择:一个巨大的验证器(无论是代码,正则表达式,基于规则,无论如何)将是一个支持和扩展的噩梦。此外,它减少了20%SOLID,因为它违反了S和O.

答案 1 :(得分:2)

我也更喜欢第二个,因为如果代理机构更改其验证要求,则更容易修改代码。

此外,添加新代理商要容易得多。

答案 2 :(得分:1)

我肯定会选择第二种选择。有一个非常通用的验证器进行初步检查。然后为每个机构提供较小的单独验证器。预先做更多工作,但更容易维护。像Oxymoron所说,如果代理商更改了有效的电子邮件要求,您只需更改一个验证器。添加新代理商或删除代理商也很少。它适用于低耦合,高内聚原理。