2016-11-22 87 views
0

我需要配置我的ExtJs文本字段以接受只能接受正數,負數,整數和小數至2位小數的數字。我試着用maskeRe和正則表達式/^-?[0-9]\d*(\.\d+)?$/。但它只接受積極的整數。用戶不應該能夠輸入受限制的字符。它也應該只在第一個地方接受' - ','。'在之間並且只有一次。如何限制ExtJs Textfield只接受使用maskRe的數字。 (應接受正數,負數,整數和小數)

所以應該接受: 10, -10, 10.12, -10.34等

Link to my fiddle

感謝

回答

1

更改maskRe

maskRe: /[0-9.-]/, 
validator: function(v) { 
    return /^-?[0-9]*(\.[0-9]{1,2})?$/.test(v)? true : 'Only positive/negative float (x.yy)/int formats allowed!'; 
}, 

點是你允許一些字符s使用maskRe(不是值本身)並驗證validator內的字符串輸入。

圖案的詳細資料

  • ^ - 串
  • 開始
  • -? - 一個可選的連字符
  • [0-9]* - 零個或多個數字
  • (\.[0-9]{1,2})? - 的
      可選序列
    • \. - 點
    • [0-9]{1,2} - 任何1或2個數字
  • $ - 字符串的結尾。
+0

謝謝@Wiktor,這個工程。但我的要求是用戶不應該能夠輸入限制字符,而不是顯示錯誤信息。 – Harshal

+0

此外,它應該只接受' - '只在第一​​個地方和'。'在之間並且只有一次。 編輯我的問題。對不完整的要求抱歉。 – Harshal

0

你可以使用這個屬性xtype:'numberfield',它會接受所有類型的數字。對於十進制值,我們可以使用decimalPrecision:2。

試試看,如果代碼不起作用,請給我你的代碼。所以我可以建議你最好的解決方案。

所有最好:)