RegexValidator不允许在CharField中使用09

2024-06-17 15:09:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我只允许字符0-9用于输入DjangoCharField的所有字符。在

当我将RegexValidator()regex = r'[^0-9]'一起使用时。我可以在字段中输入所有0-9。实际上,它允许我输入一个字符串,比如"word""a4523""!#$%#^%",和"5432bc",但是不是"4523"。在

如果我去掉^并设置regex = r'[0-9]'(见下面的代码),那么我可以输入"4523""5432bc",和{},但不是{"word"或{}。在

删除^似乎让我找到了正确的方向,但并不是全部。我不想使用PositiveSmallIntegerField,因为我想将数字输入视为字符串。在

class Number(models.Model):
    number = models.CharField(
        max_length=14,
        validators=[
            RegexValidator(
                r'[0-9]',
                'Only 0-9 are allowed.',
                'Invalid Number'
            ),
            MinLengthValidator(4),
            MaxLengthValidator(14),
        ],
    )

Tags: 字符串代码numbermodelmodels数字方向字符
1条回答
网友
1楼 · 发布于 2024-06-17 15:09:15

正则表达式[^0-9]表示匹配字符串中任何位置的非数字。您可能想以^[0-9]开头,这需要在字符串的开头有一个数字。对于完整的解决方案,我认为您需要^[0-9]*$,它要求字符串中的所有字符都是数字。在

相关问题 更多 >