2009-11-05 66 views
1

我需要限制用户只允许第一个字符为+或 - 或0-9和其他字符作为0-9..how我可以在正则表达式验证为此文本输入限制Flex3空气

下面的表达式工作,但我需要在限制领域。

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

有效值是

-123

无效

+ -123

FSAF

- + 2132

预先感谢

回答

2

更改基于该串的长度的restrict值。

<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

因为TextInput.restrit是字符串类型,所以在限制字段中不需要括号([和])。而限制只能强制启用或禁用单个字符。为了达到您的要求,您需要根据正则表达式检查文本字符串,如果无效,请删除最后输入的字符。因此,使用restrict限制用户输入仅限于那些字符(0-9 + - ),并使用正则表达式匹配来验证每当TextInput发生变化时。 – bhups 2009-11-05 15:05:43

+0

我测试了这个代码,它的工作完美。忽略方括号听起来是明智的,但奇怪的是我的文本输入不接受没有方括号的'-'(有或没有转义)。 – Amarghosh 2009-11-05 16:32:19

+0

嗨,它允许在第一个字符和一些符号的字母.. 它是不可能做单一Regexpression?,这是唯一的办法做变化事件!! ... 感谢您的回复男人。 – vineth 2009-11-10 14:04:33