我希望只允许 字符0-9表示输入Django CharField
的所有字符。
当RegexValidator()
与regex = r'[^0-9]'
一起使用时。我可以在字段中输入但 0-9的所有内容。实际上,它允许我输入"word"
,"a4523"
,"!#$%#^%"
和"5432bc"
等字符串,但不 "4523"
如果我取出^
并设置regex = r'[0-9]'
(请参阅下面的代码),那么 可以输入"4523"
,"5432bc"
和{ {1}}但不是 "a4523"
或"word"
。
删除"!#$%#^%"
似乎让我朝着正确的方向前进,但不是完整的方向。我不想使用^
,因为我想将数字输入视为字符串。
PositiveSmallIntegerField
答案 0 :(得分:7)
正则表达式[^0-9]
表示匹配字符串中的任何位置的非数字。你可能想要从^[0-9]
开始,这需要字符串开头的数字。对于完整的解决方案,我认为您需要^[0-9]*$
,这要求字符串中的所有字符都是数字。