2013-04-07 83 views
2

新來Django的,所以我不知道該如何實現以下...創建在Django正則表達式

我有這樣的正則表達式

"@£$¥èéùìòÇ\fØø\nÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\"#¤%&'()*+,-./[0-9]:;<=>\?¡[A-Z]ÄÖÑܧ¿[a-z]äöñüà\^\{\}\[~\]\|€" 

我有這樣的功能:

def validate_GSM_characters(value): 
    """ Raise a ValidationError if the value contains any values not within 
     the GSM character set. 
    """ 
    msg = u"Invalid characters." 

    raise ValidationError(msg) 

目前它什麼都不做,但我需要知道如何在Django/Python中的一個正則表達式函數,它允許我檢查值。我做了Google搜索,似乎只能找到與模型驗證相關的文章。

回答

1

只需使用表達與re模塊:

import re 

yourrule = re.compile(r"@£$¥èéùìòÇ\fØø\nÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\"#¤%&'()*+,-./[0-9]:;<=>\?¡[A-Z]ÄÖÑܧ¿[a-z]äöñüà\^\{\}\[~\]\|€") 

def validate_GSM_characters(value): 
    """ Raise a ValidationError if the value contains any values not within 
     the GSM character set. 
    """ 
    if not yourrule.search(value): 
     msg = u"Invalid characters." 

     raise ValidationError(msg) 

你也可以只使用一個RegexValidator;只需將它傳遞給你的表達和你的信息,然後用它代替上述函數。