PHP :: обрабатывать опечатки в поиске - PullRequest
3 голосов
/ 28 октября 2010

У меня есть поле для ввода имени вашего друга и поиска его, чтобы добавить его в друзья.Проблема в том, что если вы не уверены, как пишется его имя, например: Крис вместо Крис , например. Я думаю, что правильный способ сделать это - использовать RegEx, но я не знаю, как ...

  • Как мне справиться с такими опечатками в PHP ? (если это невозможно в PHP, тогда скажите мне, как это сделать в jQuery)

Ответы [ 2 ]

6 голосов
/ 28 октября 2010

Я думаю, что регулярное выражение не является хорошим подходом для проверки на наличие опечаток и похожих строк. Я хотел бы рассмотреть что-то вроде Левенштейна - PHP даже имеет встроенную функцию для этого, levenshtein.

РЕДАКТИРОВАТЬ: В зависимости от того, что вы ищете, есть и другие алгоритмы, которые также являются родными в PHP: soundex (хотя и считается замененным более новыми подходами, такими как двойной метафон), metaphone, similar_text.

2 голосов
/ 28 октября 2010

Regex не подходит для этого.Лучше всего создать набор имен, объединяющих похожие имена с их написанием.Поэтому имя Крис будет искать Крис, Крис, Крис и т. Д.

hash_map, вероятно, является хорошим выбором.Расстояние Левенштейна может сработать, но вы получите много ложных срабатываний: (Камелла против Памеллы, например).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...