gpt4 book ai didi

regex - Firebase 规则正则表达式问题

转载 作者:行者123 更新时间:2023-12-04 01:45:05 25 4
gpt4 key购买 nike

^([-+]?)([\d]{1,2})(((\.)(\d+)(,)))(([-+]?)([\d]{1,3})((\.)(\d+))?)$

我正在尝试使用上面的正则表达式来确认数据是有效坐标。我无法让它与 Firebase 规则一起使用。当我在在线正则表达式测试器中运行正则表达式时,它工作正常,但 Firebase 规则似乎不接受它。

这是我的 firebase 规则:

".validate": "newData.isString() && newData.val().matches(/^([-+]?)([\d]{1,2})(((\.)(\d+)(,)))(([-+]?)([\d]{1,3})((\.)(\d+))?)$/)"

有什么方法可以让它正常工作吗?

最佳答案

您需要加倍转义反斜杠,但老实说,您的表达式包含太多冗余的分组结构。

使用

.matches(/^[-+]?\\d{1,2}\\.\\d+,[-+]?\\d{1,3}(\\.\\d+)?$/)

或者完全避免反斜杠:

.matches(/^[-+]?[0-9]{1,2}[.][0-9]+,[-+]?[0-9]{1,3}([.][0-9]+)?$/)

正则表达式将匹配字符串 like in this online demo .

详细信息:

  • ^ - 字符串的开头(在 Firebase regex 中,仅在模式开头使用时它是一个 anchor )
  • [-+]? - 1 或 0 +-
  • [0-9]{1,2} - 1 或 2 位数字
  • [.] - 一个点
  • [0-9]+ - 1+ 位
  • , - 逗号
  • [-+]? - 1 或 0 +-
  • [0-9]{1,3} - 1 到 3 位数字
  • ([.][0-9]+)? - 1 或 0 个 . 序列和 1+ 个数字(请注意,不支持非捕获组)
  • $ - 字符串 anchor 的结尾(仅当在模式结尾时,$ 匹配 Firebase 正则表达式中的字符串结尾)。

关于regex - Firebase 规则正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44220860/

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