2009-11-05 3 views
1

J'ai besoin de limiter l'utilisateur et permettre seulement le premier caractère + ou - ou 0-9 et un autre caractère que 0-9..how puis-je faireEntrée limite dans Flex3 Air

dans validateur d'expression régulière l'expression ci-dessous fonctionne mais j'ai besoin de restreindre le champ.

<mx:TextInput id="txtTop" restrict="[0-9+-][0-9]*$" /> 

valeurs valides sont

+023

-123

invalide

+ -123

fsaf

- + 2132

Merci à l'avance

Répondre

2

Modifiez la valeur de restrict basée sur la longueur de la chaîne.

<mx:TextInput id="ti" restrict="[0-9+\-]" change="onChange(event)"/> 

private function onChange(event:Event):void 
{ 
    if(ti.text.length > 0) 
     ti.restrict = "[0-9]"; 
    else 
     ti.restrict = "[0-9+\-]" 
} 
+0

Vous n'avez pas besoin de crochets ([et]) dans le champ Restriction car TextInput.restrit est le type de chaîne. Et restreindre seulement peut forcer des caractères individuels à être activés ou désactivés. Pour atteindre vos exigences, vous devez cocher la chaîne de texte par rapport à votre expression régulière et, si elle n'est pas valide, supprimer le dernier caractère entré. Utilisez donc restrict pour restreindre les entrées utilisateur uniquement pour les caractères (0-9 + -) et utilisez regex match pour vérifier quand TextInput change. – bhups

+0

J'ai testé ce code et ça fonctionne parfaitement. Il semble judicieux d'omettre les crochets, mais bizarrement, mon entrée de texte n'accepte pas les crochets (avec ou sans échappement). – Amarghosh

+0

hi man, son autorisant des alphabets dans le premier caractère et quelques symboles .. Son n'est pas possible de faire en seule Regexpression?, Est-ce la seule façon de faire sur l'événement de changement !! ... Merci pour votre réponse man. – vineth

Questions connexes