firestore.rules 正则表达式中的编译错误
Compulation errors in firestore.rules regex
我正在尝试匹配作为任何字母标签的任何字符串。
我在多个 re2 测试站点上测试了 ^#{1}\p{L}+$
,它们都工作正常,但在 firestore.rules 中我遇到了编译错误:
Error: Compilation errors in firestore.rules:
[E] 33:33 - Unexpected 'p'.
[E] 33:37 - Unexpected '+'.
[E] 36:1 - Unexpected '}'.
删除 \p{L}
消除了错误,但据我所知,这应该是有效的。
我的测试字符串(前3个应该匹配,其余不匹配)
#somethingcool
#かんぱい
#señor
#dbudn-asdasd
##burn
kurm
#durm burn
编辑:
这是现行规则
match /tags/{tagId} {
allow create: if userIs(userId) && isValidTag(tagId)
allow read: if userIs(userId)
}
function isValidTag(tag) {
return tag.matches('^#{1}\p{L}+$') == true
}
尝试用另一个反斜杠转义反斜杠:
return tag.matches('^#{1}\p{L}+$') == true
我正在尝试匹配作为任何字母标签的任何字符串。
我在多个 re2 测试站点上测试了 ^#{1}\p{L}+$
,它们都工作正常,但在 firestore.rules 中我遇到了编译错误:
Error: Compilation errors in firestore.rules:
[E] 33:33 - Unexpected 'p'.
[E] 33:37 - Unexpected '+'.
[E] 36:1 - Unexpected '}'.
删除 \p{L}
消除了错误,但据我所知,这应该是有效的。
我的测试字符串(前3个应该匹配,其余不匹配)
#somethingcool
#かんぱい
#señor
#dbudn-asdasd
##burn
kurm
#durm burn
编辑: 这是现行规则
match /tags/{tagId} {
allow create: if userIs(userId) && isValidTag(tagId)
allow read: if userIs(userId)
}
function isValidTag(tag) {
return tag.matches('^#{1}\p{L}+$') == true
}
尝试用另一个反斜杠转义反斜杠:
return tag.matches('^#{1}\p{L}+$') == true