gpt4 book ai didi

regex - Firestore 对文档 ID 的约束的 reg 表达式是什么?

转载 作者:行者123 更新时间:2023-12-04 22:27:06 24 4
gpt4 key购买 nike

Firestore 对 ID 有限制 ( https://firebase.google.com/docs/firestore/quotas )

用于检查以下约束的 Javascript 正则表达式是什么:

  • 必须是有效的 UTF-8 字符
  • 不得超过 1,500 字节
  • 不能包含正斜杠 ( / )
  • 不能仅由单个句点 ( . ) 或双句点 ( .. )
  • 组成
  • 无法匹配正则表达式 __.*__
  • 最佳答案

    让我们来看看这几点:

    Must be valid UTF-8 characters



    我认为这更像是您选择的编程语言的问题,至少在您告诉我们您有原始八位字节并且想要一个正则表达式来验证原始八位字节序列是有效的 UTF-8 序列之前。

    Must be no longer than 1,500 bytes



    这将意味着类似于 .{1,1500}

    Cannot contain a forward slash



    这意味着类似于 [^/]{1,1500} 而不是 .{1,1500}

    Cannot solely consist of a single period or double periods.



    这意味着类似于 (?!\.\.?)

    Cannot match the regular expression __.*__



    这意味着类似于 (?!__.*__) 。也许这意味着不允许 ID 以 __ 开头并以 __ 结尾,但也许这意味着不允许 ID 包含以 __ 开头/结尾的子字符串。我的方法是安全的,并拒绝包含子字符串的任何内容。

    结合上面我们得到类似的东西:
    ^(?!\.\.?$)(?!.*__.*__)([^/]{1,1500})$

    将最大长度缩短到 10 之类的合理值,一些测试用例:

    接受
    foo
    foo.
    foo..

    拒绝
    bar/
    12345678901
    foo__bar__
    .
    ..

    Fiddle

    关于regex - Firestore 对文档 ID 的约束的 reg 表达式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52850099/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com