2010-04-08 22 views
5

W Ext JS następująca maskRe nie działa, ponieważ nie ogranicza ograniczenia do 5 znaków w polu tekstowym, dlaczego?Maska wprowadzania danych extjsRe

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

Trasy zamieszczone tutaj http://www.extjs.com/forum/showthread.php?t=96609 –

+0

Czy '' maskRe' wspierać I' modyfikator? Wypróbuj bez. –

Odpowiedz

1

nie jestem zaznajomiony z maskRe, ale wydaje mi się, że trzeba anchor regex:

maskRe: /^\d{0,5}$/ 
5

jakiegoś powodu nie używasz maxLength config? Aby zapewnić wartości liczbowe, można użyć wartości NumberField zamiast pola TextField.

7

Wykonana taką samą weryfikację wczoraj i miał podobne problemy :-)
Mylisz maskRe z regex. regex sprawdzi cały ciąg, maska ​​będzie filtrować dane wejściowe char. dlatego określ pełne wyrażenie sprawdzania w regex i tylko klasę znaków z dozwolonymi znakami w maskRe - która nie jest wymagana, ale pomocna, jeśli nie chcesz, aby użytkownicy wpisywali AAAAA tylko po to, aby powiedzieć, że jest źle -.

Nie będę używać NumberField, ponieważ to, co próbujesz sprawdzić, nie jest tak naprawdę liczbą, ale raczej kodem liczbowym, a liczby ujemne są niedozwolone. Ponadto, zamiast dopuszczać 0-5 znaków, dlaczego nie zezwolisz na dokładnie 5? To również nie pozwala na blanktext, więc allowBlank: false nie jest konieczne.

Spróbuj

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

HTH