繁体   English   中英

在 Knex.js 查询中使用非重音 postgres 扩展

[英]Use unaccent postgres extension in Knex.js Querys

我需要在没有识别口音(á、í、ö 等)的情况下查询 postgresdb。

我已经使用 Knex.js 作为查询构建器,并且 postgresql 有一个 unaccent 扩展,可以在直接到 db 的 sql 查询中正常工作,但在我的代码中,我使用 knex 和 unaccent 函数在查询中抛出错误。

任何人都可以帮助我,可以使用使用 postgresql 的非重音函数的 knex.js 进行查询吗?

我的解决方案是在使用以下代码提交查询之前处理字符串:

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 : //www.postgresql.org/docs/13/functions-string.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM