【发布时间】:2018-09-21 16:32:48
【问题描述】:
我正在构建一个带有顶部菜单的 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/,它在那里工作......
感谢您的宝贵时间,
尤尼托。
【问题讨论】:
-
您的正则表达式已经不区分大小写。只需删除内联修饰符。该错误的原因是 JS 不支持内联修饰符。
-
(?i)是 JavaScript 不支持的 PCRE 扩展。这些在线正则表达式测试人员确实应该更明确地说明他们支持哪些正则表达式方言,以及如果您不了解这些差异会发生什么。
标签: regex case-insensitive restheart