在django中创建正则表达式

时间:2013-04-07 17:40:03

标签: python 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 个答案:

答案 0 :(得分:2)

只需使用带有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;只需将表达式和消息传递给它,然后使用它代替上述函数。