分享一匹配10位加小數2位的正則寫法
朋友問可否用正則協助判斷一串數字,要求如下:
為方便判斷哪個能過哪個不能,後面補上英文的pass / fail 方便快速閱讀
- 共10位數字 + 小數點2位
- 只有一碼0時,能過 pass
- 數字不得為0開頭,但小數的
0.XX
,能過 pass - 前面沒有0的
.XX
,要能過 pass - 輸入到一半的數字,如
23.
(一樣最長10碼),也要能過 pass - 只要超過10碼數字,而無小數點,不能過 fail
- 小數只要超過2位,亦不可過 fail
費了一些時間,總算是順利寫出來了!
本例是用JavaScript的正則來寫的,對於開頭的否定用法((?!0)
)不同語言也許須略做調整!
雖然自己是用不上,但分享給需要的人
^((?!0)\d{1,10}|0|\.\d{1,2})($|\.$|\.\d{1,2}$)
可以到regexr(內含本例及測試)來試試是否符合需求,或調整數字長度!