解析与常规字符匹配的特殊字符
问题描述:
我有一个搜索输入,您可以在其中搜索葡萄酒。我有一些葡萄酒含有é
(例如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
也将解析包含é
葡萄酒的能力吗?
答
我会追加一栏包含每个名称的“规范化”版本的数据库,然后规范化用户输入的每一个搜索词,使用检查匹配。
正常化可能涉及的重音等同替换重音符号,转换大写字母为小写,并且去掉空格和连字符等,这样你能赶上其他许多常见的错误拼写。