我使用jquery.autocomplete
,它使用javascript regexp突出显示建议列表中与自动完成键字符串匹配的子字符串。因此,如果使用类型“Beat”,并且服务器返回的自动完成建议之一是“The Beatles”,则插件将该建议显示为“TheBeatles”。
我正在想办法让这个工作与字符串匹配,是不敏感的口音,变音符号和休息。因此,如果用户输入“Huske”,而服务器建议“Hüsker Dü”,则这将显示为“Hüsker Dü”。
其原理与使用指定的排序规则(如MySql或ICU中的排序规则)或Oracle的排序进行字符串比较相同。在SphinxSearch中,一个charset_table
就可以实现这一点。像utf8_general_ci这样的排序规则对于我的目的是理想的。
2条答案
按热度按时间6ojccjat1#
我唯一能想到的就是蛮力如果已知输入字符串中的任何字符具有一个或多个重音形式,则在创建正则表达式时将其替换为包含 * 所有 * 形式的字符类。例如,对于输入字符串
Huske
,正则表达式可能是/H[uùúûü]sk[eèéêë]/
。6rqinv9w2#
(我宁愿把这篇文章作为评论贴出来,并附上原始答案的链接,但我在发帖时没有足够的“声誉”来发表评论)。
例
参见https://github.com/adobe/react-spectrum/blob/7f63e933e61f20891b4cf3f447ab817f918cb263/packages/%40react-aria/i18n/src/useFilter.ts#L58