2012-11-22 72 views
-7

正在工作,但如果我輸入值例如5000,它應該工作。基本有效值應該等於或小於「99999999.9999」。值小於99999999.9999

如果值爲「123456789」,則該值無效。

小數點不是強制性的。

請幫忙。

+0

因此,在「(...)?」組中包括點和其後的所有內容。 –

+1

99999999.88888888較小,但在小數點後有更多數字。 – jlordo

+0

也許相關:http://stackoverflow.com/questions/6349161/how-to-generate-a-regular-expression-at-runtime-to-match-a-numeric-range – aioobe

回答

3

使小數部分可選

^\d{0,8}(\.\d{0,4})?$ 

,但我想你的意思,直到只有12345678,但如果沒有

^\d{0,9}(\.\d{0,4})?$ 

但我建議到小數點後有ATL​​EAST 1號碼,以便如果用戶嘗試輸入123.會失敗

^\d{0,9}(\.\d{1,4})?$ 
+0

用'(\。\ d +)?'替換該部分'(\。\ d {0,4})?'以匹配小數點後數字更多的數字,但從數學方面來看仍然較小 – jlordo

4

因爲每個浮點數都有很多不同的表示(想想100,100.0,1e2等),我建議將數字解析爲double,然後使用數字比較來確定它是否在期望的範圍內。