^(0)?[0-9]{0,}((\.){1}[0-9]{0,2}){0,1}$
上述正則表達式允許我在小數點(。)點之前輸入小數點後4位小數位,並且可選0。但是當我沒有像小數點後面輸入數字時,它不會拋出錯誤,比如0.12,等等。 !正則表達式只允許輸入小數
對此的任何指導。
^(0)?[0-9]{0,}((\.){1}[0-9]{0,2}){0,1}$
上述正則表達式允許我在小數點(。)點之前輸入小數點後4位小數位,並且可選0。但是當我沒有像小數點後面輸入數字時,它不會拋出錯誤,比如0.12,等等。 !正則表達式只允許輸入小數
對此的任何指導。
這是因爲您允許在.
之後的0和2之間的數字。
既然你說你1個4位之間的想,你可能希望這樣的:
^[0-9]*(\.[0-9]{1,4})?$
注意,我已經取代{0,}
與*
和{0,1}
與?
,因爲他們是等價的。
另外,我刪除了{1}
,因爲它默認匹配一次。
最初的(0)?
也有點多餘。
請注意,此正則表達式匹配.50
。如果你想確保小數點前的數存在,第一*
更改爲+
像這樣:
^[0-9]+(\.[0-9]{1,4})?$
爲了進一步簡化正則表達式,你也可以用\d
在大多數的正則表達式引擎取代[0-9]
,給你:
^\d+(\.\d{1,4})?$
非常感謝Marcus .. .. – Premanshu
你想匹配什麼數字?舉一些例子。此外,您的正則表達式允許最多2位小數。 – Toto
這是正確的......它在小數點後兩位數字。 有效數字:.23,12.23,12,12.2等。 無效數字:10.,12.326等 塞巴斯蒂安的回覆已經解決了這個問題。非常感謝@ M42 – Premanshu