ввод текста extjs maskRe - PullRequest
       35

ввод текста extjs maskRe

5 голосов
/ 09 апреля 2010

В Ext JS следующее maskRe не работает, поскольку не накладывает ограничение на максимум 5 символов в текстовом поле, почему?

{
  xtype: 'textfield',
  fieldLabel: '* Zip Code',
  allowBlank: false,
  maskRe: /\d{0,5}/i
}

Ответы [ 4 ]

7 голосов
/ 23 июля 2010

Вчера сделал такую ​​же проверку, и у него были похожие проблемы: -)
Вы ошибаетесь maskRe с регулярным выражением. regex проверит всю строку, maskRe отфильтрует ввод символов. поэтому укажите полное регулярное выражение валидации в regex, и только класс символов с разрешенными символами в maskRe - что необязательно, но полезно, если вы не хотите, чтобы пользователи вводили AAAAA, просто чтобы сказать, что это неправильно -.

Я бы не стал использовать NumberField вместо этого, потому что вы пытаетесь проверить не на самом деле число, а скорее цифровой код, и отрицательные числа не допускаются. Кроме того, вместо того, чтобы разрешить 0-5 символов, почему вы не разрешите ровно 5? Это также не допускает пустого текста, поэтому allowBlank: false не требуется.

Попробуйте это

regex: /^\d{5}$/i,
maskRe: /\d/i

НТН

5 голосов
/ 09 апреля 2010

По какой причине вы не используете конфигурацию maxLength? И чтобы обеспечить числовые значения, вы можете использовать NumberField вместо TextField.

1 голос
/ 09 апреля 2010

Я не знаком с maskRe, но я думаю, что вам нужно якорь регулярное выражение:

maskRe: /^\d{0,5}$/
0 голосов
/ 20 апреля 2010

Если вам нужно более сложное регулярное выражение, чем просто список разрешенных символов, вам нужно использовать vtype http://www.extjs.com/forum/showthread.php?43510-TextField-and-MaskRe&p=206015#post206015

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...