Похоже, вы не можете использовать lookarounds в Firebase, так что ваш шаблон, и весь подход должен быть настроен на учтите это.
Вашему текущему регулярному выражению требуется строка длиной от 5 до 10 символов и запрещается два последовательных символа .
, _
и -
. Первое условие должно быть проверено вне регулярного выражения с некоторым кодом, как newData.val().length >= 5 && newData.val().length <= 10
и второй раз требует перегруппировки и повторно Количественная оценка:
.matches(/^[a-z][a-z0-9]*([._-][a-z0-9]+)*$/)
Посмотреть регулярное выражение demo.
Детали:
^
- начало строки
[a-z]
- строчная буква (если добавить /i
в конце концов, это будет чувствительно к регистру)
[a-z0-9]*
- ноль или более a-z
и 0-9
([._-][a-z0-9]+)*
- a .
, _
или -
следуют с одним или несколькими (это требует, чтобы [a-z0-9]
быть в конце, если есть .
, _
или -
в строке) символов из 0-9
и a-z
диапазонов
$
- конец строки якоря.
Примечания вам не нужно, чтобы избежать символов внутри класса символов как .
и _
не специальные символов внутри него, и -
в конце или начало выражения скобки (класс символов) является буквальным дефис.
соответствует (/^(? =. {5,10} $) (?!. * [._-] {2}) [az] [a-z0-9 ._-] * [a-z0 -9] $ /) – RootHacker
@Pawan все еще получает ту же ошибку. – Relm
@SalmanAA соответствует, как правило, в Firebase? – Relm