Tat*_*shi 5 javascript collation
我目前正在创建一种通过查询字符串过滤项目的机制。
我想将其转换为区域设置感知版本(基本上,英语中不区分大小写,但也适用于日语假名):
return items.filter((item) => {
return item.name.indexOf(query) !== -1;
});
Run Code Online (Sandbox Code Playgroud)
我听说过 ES6 Intl.Collation,如果它能达到我的目标,我想使用它。
以下适用于法语,也可能适用于日语:
\nconst collator = new Intl.Collator(\'en\', { sensitivity: \'base\', usage: \'search\' });\nfunction contains(string, substring) {\n if (substring.length === 0) {\n return true;\n }\n string = string.normalize(\'NFC\');\n substring = substring.normalize(\'NFC\');\n let scan = 0;\n for (; scan + substring.length <= string.length; scan += 1) {\n const slice = string.slice(scan, scan + substring.length);\n if (collator.compare(substring, slice) === 0) {\n return true;\n }\n }\n return false;\n}\nRun Code Online (Sandbox Code Playgroud)\n例如。
\ncontains("\xc3\xa0 point", "a point")\ntrue\nRun Code Online (Sandbox Code Playgroud)\n\n
| 归档时间: |
|
| 查看次数: |
345 次 |
| 最近记录: |