2014-08-28 117 views
0

什麼是javascript正則表達式來確定小數點後的數字是否僅爲零,小數點後的零數是否大於二?Javascript正則表達式涉及小數點後的零

一些測試的情況:

8 -> false 
8.0 -> false 
8.00 -> false 
8.000 -> true 
8.0000 -> true 
8.00001 -> false 
+0

是否每個字符串包含一個數字是這樣,或者這個天馬行空的更大的文本? – hwnd 2014-08-28 22:25:38

+0

只有一個數字 - 請注意,如第一個測試案例所示,可能不需要小數點。 – Mark13426 2014-08-28 22:26:17

+0

你能告訴我們你試過的東西嗎? – joews 2014-08-28 22:26:34

回答

3

基於把你的意見,如果0.000是合法的,你想要的小數點是大於二後拒絕複式前導零,只有零一起,下面應該爲你工作。

/^(?!00)\d+\.0{3,}$/ 

說明

^   # the beginning of the string 
(?!  # look ahead to see if there is not: 
    00  # '00' 
)   # end of look-ahead 
\d+  # digits (0-9) (1 or more times) 
\.  # '.' 
0{3,} # '0' (at least 3 times) 
$   # before an optional \n, and the end of the string 

Live Demo

+0

謝謝。這很好。也許稍微改進就是拒絕像000.000這樣的表達式(\ d +在小數點之前允許一個或多個零)當然,現在我想知道000.000是否是一個數字,但在我的情況下,您的正則表達式對我來說足夠好。 – Mark13426 2014-08-28 22:42:19

+0

'0.000'會被視爲比賽嗎? – hwnd 2014-08-28 22:44:04

+0

是的,這將是一場比賽 – Mark13426 2014-08-28 22:44:41

0

這裏是一個在字符串的末尾匹配到.然後3個或更多0的正則表達式。

/\.0{3,}$/ 
0

試試這個:

var pattern = /^\d+\.0{3,}$/; // Regex from @hwnd 

function checkDigits(digits) { 

    var result = pattern.test(digits); 

    return result; 
} 

alert(checkDigits("5.000")); //Returns true.