2009-11-05 91 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