PHP::处理搜索中的输入错误

PHP::处理搜索中的输入错误,php,regex,search,Php,Regex,Search,我有一个字段可以输入您朋友的姓名,并搜索他,将他添加为朋友。 问题是如果你不知道他的名字怎么拼,比如: Kris而不是Chris例如。 我认为正确的方法是使用正则表达式,但我不知道如何… 如何在PHP中处理此类打字错误? (如果在PHP中无法实现,请告诉我如何在jQuery中实现) 我认为正则表达式不是检查拼写错误和类似字符串的好方法。我想像LevsHTEN-PHP这样的东西甚至有一个本机函数, LevsHeTin < /C> 编辑:根据您要查找的内容,还有其他一些算法也是PHP中的原生算法

我有一个字段可以输入您朋友的姓名,并搜索他,将他添加为朋友。
问题是如果你不知道他的名字怎么拼,比如:
Kris而不是Chris例如。
我认为正确的方法是使用正则表达式,但我不知道如何…

  • 如何在PHP中处理此类打字错误
    (如果在PHP中无法实现,请告诉我如何在jQuery中实现)


我认为正则表达式不是检查拼写错误和类似字符串的好方法。我想像LevsHTEN-PHP这样的东西甚至有一个本机函数,<代码> LevsHeTin < /C>
编辑:根据您要查找的内容,还有其他一些算法也是PHP中的原生算法:
soundex
(尽管被双变音等较新的方法所取代),
Metaphone
类似的文本

正则表达式不适用于此。最好的办法是创建一组名称,将相似的名称与其拼写进行分组。克里斯这个名字会搜索克里斯,克里斯,克里斯,等等


哈希映射可能是一个不错的选择。Levenshtein距离可能会起作用,但你会得到很多误报:(例如Camella vs Pamella)。

+1,尽管变音可能比Levenshtein和其他人更切题。但是,它们是特定于语言的,如果当前语言不是英语,则应使用另一种变音算法。双变音算法也尝试包括许多其他语言(PHP有一个可用的实现),尽管它在实践中的效果令人怀疑。