nu *_*est 3 python regex django
我想只允许字符0-9表示输入Django的所有字符CharField
.
当我使用RegexValidator()
时regex = r'[^0-9]'
.我可以进入一切,但在该领域0-9.事实上,它可以让我输入一个字符串像"word"
,"a4523"
,"!#$%#^%"
,和"5432bc"
,但不会 "4523"
.
如果我取出^
并集regex = r'[0-9]'
(见下面的代码),那么我可以进入"4523"
,"5432bc"
和"a4523"
而不是 "word"
或"!#$%#^%"
.
移除^
似乎让我朝着正确的方向前进,但不是完整的方向.我不想使用a,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),
],
)
Run Code Online (Sandbox Code Playgroud)
正则表达式[^0-9]
意味着匹配字符串中的任何位置的非数字.你可能想要开始^[0-9]
,这需要字符串开头的数字.对于一个完整的解决方案,我认为你想要的^[0-9]*$
,这要求字符串中的所有字符都是数字.
归档时间: |
|
查看次数: |
4794 次 |
最近记录: |