2016-05-10 7 views
2

RegexValidatorに特殊表現を実装するにはどうすればよいですか?特別な表現を使用するDjango - RegexValidator

forms.py:áàäéèëíìïóòöúùüñÁÀÄÉÈËÍÌÏÓÒÖÚÙÜÑは同様に私は"非ASCII文字"エラーが表示されます。私が使用したい

class MyRegistrationForm(forms.ModelForm): 
    alphanumeric = RegexValidator('^[A-Za-z]+$', 'Only alphabetic') 
    first_name = forms.CharField(max_length = 20, validators=[alphanumeric]) 
    last_name = forms.CharField(max_length = 20, validators=[alphanumeric]) 

。それを使用する他の方法はありますか?

答えて

2

あなたは\w指定子を使用することができますが、RegexValidatorre.UNICODEフラグを有効にしないので、あなたはこのようなものが必要になる場合があります:

import re 
class MyRegistrationForm(forms.ModelForm): 
    re_alphanumeric = re.compile('^\w+$', re.UNICODE) 
    alphanumeric = RegexValidator(re_alphanumeric, 'Only alphabetic') 
    ... 

更新:あなたは数字を除外したい場合はを、

を使用
import re 
class MyRegistrationForm(forms.ModelForm): 
    re_alpha = re.compile('[^\W\d_]+$', re.UNICODE) 
    alpha = RegexValidator(re_alpha, 'Only alphabetic') 
    ... 
+0

ありがとうございますが、現在では数値も使用できます。 – BrianCas

+0

@BrianCas変数名は '英数字 'だったので、これを想定しました。更新された回答をご覧ください。 – Selcuk

+0

私の悪い、私は変数名を変更することを忘れて、もう一度ありがとう+1 – BrianCas

関連する問題