1

我正在构建一个带有顶部菜单的 Angular 网页,其中的搜索输入给我带来了一些问题……我正在使用 RESTHeart API 来构建它的查询。在发送到 API 的查询中,我发送以下内容:

[a-zA-Z0-9.@-]{4,99}

此模式应确保搜索输入不区分大小写并且效果不佳,因此我查看了此处的文档https://restheart.org/learn/query-documents/并且正则表达式应按顺序包含 (?i)被解释为“不区分大小写”。所以我做到了——这是发送的模式:

(?i)[a-zA-Z0-9.@-]{4,99}

现在我在菜单加载时遇到错误:

ERROR SyntaxError: Invalid regular expression: /^(?i)[a-zA-Z0-9.@-]{4,99}$/: Invalid group

我还尝试对 (?i) 部分进行硬编码,因为问题似乎出在该特定部分...

任何人都知道为什么会发生这种情况?我试过https://regex101.com/r/o684Hu/2/它在那里工作......

感谢您的时间,

尤尼托。

4

1 回答 1

1

在 mongodb 中,$regex 查询运算符允许选项

对于不区分大小写的正则表达式查询,使用 RESTHeart 查询过滤器应如下所示

GET /db/coll?filter={"field":{"$regex": "[a-zA-Z0-9.@-]{4,99}", "$options": "i"}}

有关更多信息,请查看mongodb 文档中可用于正则表达式的选项。

于 2018-09-22T07:33:14.150 回答