class checkUserName(FlaskForm):
username = StringField('Username',[Length(min=5, max=20),Regexp('[0-9A-Za-z_]+'),DataRequired('Required')])
我只想接受数字,字符和下划线之间的用户名组合,例如admin
,拒绝用户名,例如'''''''''''
,最小长度为5,最大长度为20,但是验证不起作用,如何我可以解决吗?
答案 0 :(得分:0)
尝试像这样更改代码:
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_]+'*")`
[0-9A-Za-z_]+
:在方括号中接受一组字符,并重复一个或多个'*
:在上面的字符之后接受'
个字符,重复次数为0或更多。