解析与常规字符匹配的特殊字符

问题描述:

我有一个搜索输入,您可以在其中搜索葡萄酒。我有一些葡萄酒含有é(例如Dom Pérignon)等字符。解析与常规字符匹配的特殊字符

目前,如果我键入Dom Perignon话,我不会得到上面的例子酒。但我想达到的目的是,如果我输入e代替é我仍然会得到Dom Pérignon酒。

的搜索机制本身是基本的。

输入:

<input id="search" type="text" placeholder="Search for wine or producer..." ng-change="search()" ng-model="data.search"> 

和SQL查询:

DB.query("SELECT id, name, ... FROM wines WHERE name LIKE ? OR house_name LIKE ? LIMIT 20", [searchFilter + '%', searchFilter + '%']) 

我怎么能做到这一点打字e也将解析包含é葡萄酒的能力吗?

我会追加一栏包含每个名称的“规范化”版本的数据库,然后规范化用户输入的每一个搜索词,使用检查匹配。

正常化可能涉及的重音等同替换重音符号,转换大写字母为小写,并且去掉空格和连字符等,这样你能赶上其他许多常见的错误拼写。