2
我只想允許所有輸入到Django的字符都是0-9。CharField
。當我使用RegexValidator()
與regex = r'[^0-9]'
。我可以在該字段中輸入所有內容但是 0-9。實際上,它會允許我輸入一個字符串,如"word"
,"a4523"
,"!#$%#^%"
和"5432bc"
,但是不是"4523"
。RegexValidator在CharField中不允許0-9
如果我拿出^
並設置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或更多)與'+'(1或更多)。另外:'^ \ d + $' – Hamish
@Hamish,還有其他驗證器被用來約束輸入的長度。 OP顯然需要4至14個字符。在這種情況下,不需要在正則表達式中編碼。簡單在這裏看起來不錯。 –
空白不允許。儘管在其中一個字段中,我想只允許在一串數字的前面加一個'+',即'+323'應該是允許的,但'+'不是必需的。 –