You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore安全规则中Regex匹配邮箱失败及语法报错求助

Firestore安全规则中邮箱正则匹配的合规解决方案

问题根源

直接使用带斜杠包裹的正则表达式(如/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)会导致匹配失败,手动转义\.后触发语法错误,核心原因是Firestore安全规则的matches()方法对正则的语法要求和常规JS正则不同:

  • 不需要用/包裹正则表达式,斜杠会被当作正则的一部分参与匹配
  • 大小写忽略等修饰符不能写在正则末尾,需通过方法的第二个参数传入
  • 规则字符串中的反斜杠需要双重转义(\\.)才能表示正则里的字面量.

正确写法

将正则以纯字符串形式传入matches(),并把修饰符作为第二个参数传递:

return request.resource.data.email.matches('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$', 'i');

验证说明

该规则可正确匹配test@gmail.com等标准格式邮箱,同时不会触发语法错误,完全符合Firestore安全规则的语法要求。

内容的提问来源于stack exchange,提问作者Jesse Yentsch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 09:17:38