Это не работает, потому что kunjaaN-
- это восемь символов, и вы ограничиваете себя 1..7
Для имени пользователя, почему бы не увеличить лимит на что-то приличное?
Кроме того, если вы хотите, чтобы _
было включено, вам нужно включить его в свой класс персонажей.
Попробуйте это регулярное выражение:
^[a-zA-Z_-]{1,16}\z
1012 *
*
Примечание:
Внутри классов символов символ -
может иметь особое значение. Например, [a-z]
означает «диапазон символов, начинающийся с a
и заканчивающийся z
», тогда как [az-]
означает «либо a
, либо z
, либо -
».
Чтобы сделать -
не специальным, вы можете поместить его в начале или в конце класса, или экранировать его обратной косой чертой. [a\-z]
будет соответствовать a
или z
или -
.
Экранирование, как правило, предпочтительнее, поскольку позволяет избежать несчастных случаев, если дополнительные символы непреднамеренно добавляются в конец класса.