我有一個正則表達式來檢查輸入的價格。價格不能是5位數字或更多,但可以包含選項的十進制數字。所以 -正則表達式檢查小數位數
- 1000 =允許
- 9999.99 =允許
- 10000 =不允許
- 100.000 =不允許
這是我到目前爲止,這是檢查數正確的小數,但不檢查小數點前的位數。我究竟做錯了什麼?
var reg = new RegExp("^(\d{0,4})+(\.[0-9]{2})?$");
我有一個正則表達式來檢查輸入的價格。價格不能是5位數字或更多,但可以包含選項的十進制數字。所以 -正則表達式檢查小數位數
這是我到目前爲止,這是檢查數正確的小數,但不檢查小數點前的位數。我究竟做錯了什麼?
var reg = new RegExp("^(\d{0,4})+(\.[0-9]{2})?$");
你有一個錯誤的量詞
var reg = new RegExp("^(\d{0,4})(\.[0-9]{2})?$");
只是刪除+
,你的正則表達式是罰款。
有了這個(\d{0,4})+
你重複你的第一組,這樣你就可以點之前匹配任何數字量。
你的jsfiddle工作對我來說,如果我加倍逃生
var reg = new RegExp("^\\d{0,4}(?:\\.\\d{2})?$");
還是不要把你的正則表達式中的字符串
var reg = new RegExp(/^(\d{0,4})(\.[0-9]{2})?$/);
爲什麼第二次允許一個和最後一個呢? –
最後一個是不允許的,因爲價格只有兩位小數,我猜。 – Pharaoh