Easy
Это регулярное выражение, которое вы должны использовать.
^[0-9A-Za-Z_-]{3,20}$
"^"means starts with the characters defined in [] brackets
"[]" represents list of allowed characters
"0-9" represents that numbers from 0-9 can be used
"A-Z" uppercase letters from A to Z
"a-z" lowercase letters from a to z
"_" underscore
"-" dash
"{}" represents limitations
"{3,20}" - min 3 characters max 20
"$" ends with the characters defined in []
если вы не используете^$, чем он будет искать сочетание этих букв в строке, так строка может быть 30 символов, и это будет справедливо.
Я надеюсь, что это помогает
Я бы проверял длину пути, просто попробуйте создать его и посмотреть, вызывает ли он ошибку. – Floris