簡體   English   中英

帶小數位數的正則表達式

[英]regular expression for number with decimal places

誰能幫我建立一個正則表達式來驗證2位小數的6位數字? 這些例子應該通過測試

0,  0.0,  0.33,  1, 11,  111, 1111, 11111,  111111
1.33, 1.3, 12.33, 12.3, 123.0, 123.33, 1234.0, 1234.11

嘗試了這個:

/^\d{1,4}(\.\d{1,2})?$/ 

但是當按下。(點)時它在jquery中失敗

嘗試使用正則表達式:/ /^\\d{1,6}(\\.\\d{1,2})?$/ . /^\\d{1,6}(\\.\\d{1,2})?$/ 注意:您需要轉義點。

如果您要求的位數總數(包括小數點后的位數)最多為6,則正則表達式將為:/ /^(?!.{8,})\\d{1,6}(\\.\\d{1,2})?$/ 8, /^(?!.{8,})\\d{1,6}(\\.\\d{1,2})?$/ 該表達式添加了一個負的超前字符?!.{8,} ,這將排除那些長度大於7的數字。

更新:如@Christoph所指出的,應排除“ 01.23”,然后上述兩個表達式應為/^([1-9]\\d{0,5}|0)(\\.\\d{1,2})?$//^(?!.{8,})([1-9]\\d{0,5}|0)(\\.\\d{1,2})?$/

當您按點時,它后面沒有數字,並且您的正則表達式失敗。 因此,您可以嘗試使用此正則表達式/^\\d{1,6}(\\.\\d{0,2})?$/來允許這種情況,但是請注意,用戶將能夠輸入類似於12345.數字12345.

DOT是一個特殊字符,需要進行轉義。 您應該使用“ \\”。

最簡單的方法是首先使用適當的jquery函數檢查String的長度是否小於7(6位數字和1個點)。 這與長度有關。

然后對於正則表達式,您只需要檢查它最多具有2個小數位即可使用:/ /^\\d{1,6}(\\.\\d{1,2})?$/

http://www.regular-expressions.info/dot.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM