Ошибки компиляции в regex firestore.rules - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь сопоставить любую строку, которая является хэштегом любых букв.

Я протестировал ^#{1}\p{L}+$ на нескольких сайтах тестирования re2, и все они работают нормально, но в 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
}

1 Ответ

1 голос
/ 20 марта 2020

Попробуйте убежать от бэкслы sh с другой бэкслой sh:

return tag.matches('^#{1}\\p{L}+$') == true
...