在 Cloudant Query 中使用正则表达式查询时如何忽略重音敏感?
How I can ignore accent sensitive when I use a regex query in Cloudant Query?
请帮助我忽略 Cloudant 查询中的重音敏感
我在网上找到了忽略大小写敏感的方法(?i)
,效果很好。但不适用于重音敏感。
这是我的 Cloudant 查询的一部分:
{
"modelo": {
"$regex": "(?i)sábado"
}
}
谢谢!!
就像第一个提到的评论者一样,您可能需要替换搜索中的字符。例如,您可以将搜索更改为这样的内容
{
"$or": [
{"modelo": {"$regex": "(?i)sábado"}},
{"modelo": {"$regex": "(?i)sabado"}}
]
}
如果您可以控制存储在 Cloudant 中的数据,那么在进入的过程中替换重音字符可能会更容易。如果您需要原始值,您可以添加一个新的搜索字段。例如,您可以将 modelo
设置为 sábado
,然后添加另一个字段,如 modelo_search
,并将值设置为 sabado
。然后,无论何时执行搜索,您都可以使用 modelo_search
字段并替换搜索字符串中的重音符号,如下所示:
{
"modelo_search": {
"$regex": "(?i)sabado"
}
}
我找到了解决方案:
只需更改要搜索相应元音的字符串中的任何元音。
var dat = "sábado"
var res = dat.replace(new RegExp(/[aáAÁ]/g), "[aáAÁ]");
请帮助我忽略 Cloudant 查询中的重音敏感
我在网上找到了忽略大小写敏感的方法(?i)
,效果很好。但不适用于重音敏感。
这是我的 Cloudant 查询的一部分:
{
"modelo": {
"$regex": "(?i)sábado"
}
}
谢谢!!
就像第一个提到的评论者一样,您可能需要替换搜索中的字符。例如,您可以将搜索更改为这样的内容
{
"$or": [
{"modelo": {"$regex": "(?i)sábado"}},
{"modelo": {"$regex": "(?i)sabado"}}
]
}
如果您可以控制存储在 Cloudant 中的数据,那么在进入的过程中替换重音字符可能会更容易。如果您需要原始值,您可以添加一个新的搜索字段。例如,您可以将 modelo
设置为 sábado
,然后添加另一个字段,如 modelo_search
,并将值设置为 sabado
。然后,无论何时执行搜索,您都可以使用 modelo_search
字段并替换搜索字符串中的重音符号,如下所示:
{
"modelo_search": {
"$regex": "(?i)sabado"
}
}
我找到了解决方案: 只需更改要搜索相应元音的字符串中的任何元音。
var dat = "sábado"
var res = dat.replace(new RegExp(/[aáAÁ]/g), "[aáAÁ]");