2010-04-08 2 views
5

Dans Ext JS, les éléments suivants maskRe ne fonctionne en ce qu'elle ne met pas pas la restriction de 5 caractères maximum sur le champ de texte, pourquoi?texte d'entrée ExtJS maskRe

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

Permuté ici http://www.extjs.com/forum/showthread.php?t=96609 –

+0

Ne 'maskRe' soutenir le' I' modificateur? Essayez-le sans. –

Répondre

1

Je ne suis pas familier avec maskRe, mais je pense que vous devez anchor la regex:

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

une raison quelconque vous n'êtes pas en utilisant la configuration maxLength? Et pour assurer que les valeurs numériques, vous pouvez utiliser un NumberField au lieu d'un champ de texte.

7

a fait la même hier, la validation et a eu les mêmes problèmes :-)
Vous vous trompez maskRe avec regex. regex validera toute la chaîne, maskRe filtrera l'entrée char. donc préciser la regex complète de validation regex, et seule la classe de caractères avec caractères autorisés dans maskRe - qui n'est pas nécessaire, mais utile si vous ne voulez pas que les utilisateurs de taper AAAAA juste à dire qu'il est faux -.

Je ne voudrais pas utiliser NumberField à la place, parce que ce que vous essayez de valider n'est pas vraiment un certain nombre, mais plutôt un code numérique et les nombres négatifs ne sont pas autorisés. Aussi, au lieu de permettre 0-5 caractères, pourquoi ne pas autoriser exactement 5? Cela n'autorise pas non plus de texte en blanc, donc allowBlank: false n'est pas nécessaire.

Essayez cette

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

HTH