不区分大小写-“ SyntaxError:无效的正则表达式”

时间:2018-09-21 16:32:48

标签: regex case-insensitive restheart

我正在构建一个带有搜索结果的顶级菜单的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/,它在这里有效...

感谢您的时间,

Eunito。

1 个答案:

答案 0 :(得分:1)

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

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

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

有关更多信息,请查阅mongodb文档中的options available for use with regular expression