RegexValidator在CharField中不允许0-9

时间:2012-11-13 00:42:46

标签: python regex django

我希望只允许 字符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

1 个答案:

答案 0 :(得分:7)

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