gpt4 book ai didi

python - RegexValidator 不允许在 CharField 中使用 0-9

转载 作者:太空宇宙 更新时间:2023-11-03 13:21:13 25 4
gpt4 key购买 nike

对于输入到 Django CharField 中的所有字符,我想允许字符 0-9。

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

如果我取出 ^ 并设置 regex = r'[0-9]'(参见下面的代码),那么我可以输入 "4523""5432bc""a4523"不是 "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),
],
)

最佳答案

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

关于python - RegexValidator 不允许在 CharField 中使用 0-9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com