我需要查询一个没有标识重音(á、í、ö等)的postgresdb。
我已经使用Knex.js作为查询构建器,而且postgresql有一个unaccent扩展,它在直接到数据库sql查询中工作得很好,但在我的代码中,我使用了knex和unaccent函数在查询中抛出错误。
有没有人可以帮我,可以用PostgreSQL语言的无重音功能用knex.js进行查询?
发布于 2021-07-24 15:45:22
我的解决方案是在提交查询之前使用以下代码处理字符串:
const normalize = (str) => str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
console.log(normalize('Ấ Á Ắ Ạ Ê')) -> 'A A A A A'.或者,如果您使用postgresql版本13或更高版本,它已经支持该功能。
select normalize('hồ, phố, ầ', NFC) → 'ho, pho, a' -- NFC (the default), NFD, NFKC, or NFKD.https://stackoverflow.com/questions/65029085
复制相似问题