2013-07-08 16 views
0

這可能是一個很簡單的問題,已經解決了很多次。我對前端開發人員很陌生,所以在驗證部分苦苦掙扎。我有一個貨幣輸入,我在JavaScript中使用以下語句只允許數字。我可以編輯這個或添加一行,也只允許鍵入兩位小數?JSP輸入驗證金額 - 可能與REGEX

$("input#amountToSave").on("blur keyup", function() { 
     this.value=this.value.replace(/[^0-9.]+/,''); 
}); 

回答

0

你可以嘗試這樣的事情

^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$ 

許多貨幣expresssions允許以零,從而$ 01.40通行證通他們。這個表達式會殺死它們,除了該列中的0以外。有或沒有逗號和/或美元符號。小數不是必需的,除非放置了一列和小數點中的零。允許$​​ 0.00到0.0關鍵詞:貨幣匯率

例如,

$1,234.50 | $0.70 | .7 
+0

我做錯了什麼?我將REGEX粘貼在我的代碼中的兩個'/'之間。現在它甚至不阻止我輸入字符? THIS.VALUE = this.value.replace(/^\ $?([1-9] {1} [0-9] {0,2}(\,[0-9] {3})*(\。 [0-9] {0,2})|?[1-9] {1} [0-9] {0,}(\ [0-9] {0,2})|。?0(\。 ??[0-9] {0,2})|(\ [0-9] {1,2}))$ /, ''); – user990855

0

好了 - 我想我看到的問題。我需要一個正則表達式(對於小數點後兩位可以是簡單的一個 - 現在我不需要它太複雜,也不需要貨幣符號)。我現在看到,當我正在測試如果值不是0-9替換爲空格時,我正在測試。所以我需要添加到reg exp中,如果它是小數點後第三位,則用空格替換。