Вчера сделал такую же проверку, и у него были похожие проблемы: -)
Вы ошибаетесь maskRe с регулярным выражением. regex проверит всю строку, maskRe отфильтрует ввод символов. поэтому укажите полное регулярное выражение валидации в regex, и только класс символов с разрешенными символами в maskRe - что необязательно, но полезно, если вы не хотите, чтобы пользователи вводили AAAAA, просто чтобы сказать, что это неправильно -.
Я бы не стал использовать NumberField вместо этого, потому что вы пытаетесь проверить не на самом деле число, а скорее цифровой код, и отрицательные числа не допускаются. Кроме того, вместо того, чтобы разрешить 0-5 символов, почему вы не разрешите ровно 5? Это также не допускает пустого текста, поэтому allowBlank: false не требуется.
Попробуйте это
regex: /^\d{5}$/i,
maskRe: /\d/i
НТН