使用WTForms和python进行正则表达式验证

问题描述 投票:11回答:2

这是我的代码:

class CreateUser(Form):
    username = StringField('Username', [
        validators.Regexp('\w+', message="Username must contain only letters numbers or underscore"),
        validators.Length(min=5, max=25, message="Username must be betwen 5 & 25 characters")

    ])

    password = PasswordField('New Password', [
        validators.DataRequired(), 
        validators.EqualTo('confirm', message='Passwords must match')
    ])

    confirm  = PasswordField('Repeat Password')

因此问题出现在第3行。我希望用户名只能是字母数字字符。由于某种原因,此正则表达式仅检查第一个字符。为什么+符号在这里不起作用?谢谢。

python regex wtforms
2个回答
17
投票

用正则表达式替换

'^\w+$'

解决了问题。


0
投票

我知道很久以前就已经回答了,但是我发现在WTForms上提供字母数字验证的另一个选项是AlphaNumeric()

from wtforms_validators import AlphaNumeric
...

class SignupForm(Form):
    login_id = StringField('login Id', [DataRequired(), AlphaNumeric()])

更多详细信息,请点击https://pypi.org/project/wtforms-validators/

© www.soinside.com 2019 - 2024. All rights reserved.