Flask - Проверка регулярного выражения и длины не работает - PullRequest
0 голосов
/ 05 марта 2020
class checkUserName(FlaskForm):
    username = StringField('Username',[Length(min=5, max=20),Regexp('[0-9A-Za-z_]+'),DataRequired('Required')])

Я хочу принять только имя пользователя, комбинацию между числом, символом и подчеркиванием, например admin, и отклонить имя пользователя, например ''''''''''', с минимальной длиной 5 и максимальной длиной 20, но проверка не сработала, как можно Я это исправлю?

1 Ответ

0 голосов
/ 07 марта 2020

Попробуйте изменить свой код следующим образом:

username = StringField('Username', validators=[Length(min=5, max=20),Regexp('[0-9A-Za-z_]+'),DataRequired('Required')])

или вот так:

username = StringField('Username', [validators.Length(min=5, max=20), validators.Regexp('[0-9A-Za-z_]+'), validators.DataRequired('Required')])

если вы хотите ''''''''''' принять в качестве имени пользователя, вы можете изменить регулярное выражение следующим образом:

("[0-9A-Za-z_']+")

это означает, что вы принимаете набор символов в квадратных скобках, а + означает, что символ впереди повторяется один или несколько раз.

, если вы хотите принять только admin, admin'''' вас можно попробовать это:

`("[0-9A-Za-z_]+'*")`
  1. [0-9A-Za-z_]+: принять набор символов в квадратных скобках с одним или более повторениями
  2. '*: принять ' символ после символ выше с 0 или более повторениями.
...