背景:項目中需要做個對兩位小數點的正負浮點數的處理,
要求:非數字或者.字符自動清除,並對.12自動修補.前的0
原理:在輸入框中加入兩個事件,keyup與blur,keyup處理字符串中非要求的字符,blur中對最終字符串處理成理想的格式111.11
實現:通過七個正則處理掉主功能 val代表輸入的字符串
/^\d*\.?\d{0,2}$/ 驗證val是否是ddd.dd的格式,是則不處理,否才處理
/[^.0-9]+/ 處理掉val中所有的非數字與.的字符
/(?:\d*\.\d{0,2}|\d+)/ 將val處理成正確的格式。
/^\d+$/ 當是整數時的處理
/^\.\d{0,2}$/ 小數點前沒有數字時處理
/^\d+\.\d{0,2}$/ 小數點後數字位數在0-2之間時的處理
/^0+[1-9]\d*\.?\d{0,2}$/ val前面有0時的處理
測試數據:
fdfd100.12 122.121 12t12.57 12546 1245. 125.4 154.45.456 .126 005245.121 dfdffd等等
Demo下載