2012-03-01 16 views
-4

名前をフォームで検証したいと考えています。名前は次のようになります。名前を検証する方法

Knop 
knop 
knop-Doe 
knop doe 
Knop Doe Bald 
Knop-Doe-Bald 

そして、私はスペースに問題があります。私が持っているフォームで:

forms.RegexField(regex=r'[a-zA-Z0-9_.-]+$', max_length=36, required=True) 

しかし、これは動作しません。

どうすればよいですか?

+9

何が問題なのですか?有効な名前は検証されませんか?無効な名前が渡されますか?あなたには例外がありますか? OSエラー?あなたのハードディスクはクラッシュしますか?モニターが爆発する?何? – DrTyrsa

+2

+1はモニターが爆発する – armonge

答えて

1

あなたの正規表現は、小文字a-z、大文字A-Z、数字0-9のマッチングされ、ドット.とハイフン-_を強調しています。

スペースが一致しないため、Knop Doe Baldのような名前は一致しません。あなたの正規表現のスペースがハイフンの前に行く

r'[a-zA-Z0-9_. -]+$' 

注スペースを含む

てみてくださいは、ないの後に、それ以外の場合はハイフンは範囲として解釈されます。

関連する問題