jQuery плагин Mailcheck (github) — клиентсайд проверка емейла на опечатки по заранее определённму списку (к примеру, наиболее популярных почтовых сервисов).
Демка | сорсы демки (jsfiddle)
По заявлению (en) авторов (Kicksend), сей плагин увеличил кол-во подтверждений емейла при регистрации на 50%.
Чтобы плагин проверял на опечатки кириллические домены, правим сорсы (Line 30):
var result = Kicksend.mailcheck.suggest(encodeURI(this.val()), opts.domains);
заменяем encodeURI(this.val())
на this.val()
(важно! кодировка должна быть UTF-8)
Вариант нелогичного предложения исправления опечатки
В плагине используется алгоритм поиска наибольшей общей подстроки и, в целом, хорошо справляется с предложениями исправлений, однако, я обнаружил вариант нелогичного предложения:
Входные данные:
домены: [«ua.com», «ui.com»]
емейл: user@uo.com
Вывод: user@ua.com
Если посмотреть на клавиатуру, то очевидно, что «o» ближе к «i» — другому домену — ui.com.
Предлагаю читателям обсудить — как улучшить алгоритм, чтобы он коррекно отрабатывал аналогичные опечатки.
Автор: demark