当人们填写电子邮件地址时,如何查找诸如 yaho.com、gail.com 之类的拼写错误

Ola*_*laf 1 email-validation

在所有具有在线表单的项目中,很多人必须输入他们的数据,令人惊讶的大量输入通过正则表达式验证但看起来像 foo@yaho.com、foo@gnail.com 或 foo@hotmial.com 的电子邮件地址 - 拼写错误在知名电子邮件提供商的域名中。

我们很想显示一个提示,例如“您写的是 foo@yaho.com,但您的意思不是 foo@yahoo.com?” .

当然,我们可以创建大量可能的拼写错误。

有没有更优雅的方式?一个能做到这一点的网络服务?代码片段?一个超酷的正则表达式?

Ste*_*ung 5

  1. 准备一份知名域名列表
  2. 从电子邮件地址中提取域名
  3. 查找电子邮件域与每个知名域的汉明距离(或 Damerau-Levenshtein 距离)
  4. 对汉明距离进行排序
  5. 如果最小在阈值内,建议它

注意:Google Hamming 和 Damerau-Levenshtein 距离。