2014-08-27 30 views
7

這裏正則表達式驗證是我的代碼:與WTForms和Python

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行存在我想要的用戶名是唯一的字母數字字符。出於某種原因,這個正則表達式只是檢查第一個字符。有沒有理由爲何+符號不在這裏工作?謝謝。

+1

除非我錯了,'\ w +'意思是「一個或多個字符\ w」,我想你想要r'\ w +'來防止逃脫 – user2085282 2014-08-27 17:39:07

+0

@ user2085282是的,這也不管用。但我認爲它可能與逃避有關... – mpn 2014-08-27 17:45:51

回答

11

更換正則表達式與

'^\w+$' 

解決了這個問題。