2014-06-29 37 views
-4

我需要使用正則表達式驗證一些輸入。JavaScript的正則表達式來驗證,如果只有數字以開頭零開頭

以下是一些示例用例和預期結果。

如果輸入包含字母,它應該匹配正則表達式,並且如果在開始時輸入包含0。

0001  - Matched 
001  - Matched 
01  - Matched 
00.12312 - Matched 
000.1232 - Matched 
k0.0055 - Matched 
0.15k - Matched 
kkkkk - Matched 
kk.15 - Matched 
15k  - Matched 
1  - Not matched 
20  - Not matched 
0.1  - Not matched 
0.123123 - Not matched 

這樣的正則表達式會是什麼樣子?

+2

最後兩個包含開頭的零,又何必不匹配? –

+2

你的問題還不清楚,你到目前爲止還沒有向我們展示你的嘗試。 –

+0

類似'/ [a-zA-Z] | 0 [0-9] /' – adeneo

回答

1

了給定的輸入,正則表達式爲:"^([0]{1,}[0-9a-z].*|.*[a-z].*)$"

例子:

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function display() { 
    input = ["0001", "001", "01", "00.12312", "000.1232", "k0.0055", "0.15k", "kkkkk", "kk.15", "15k", "1", "20", "0.1", "0.123123", "500"] 
    result = "" 
    for (i=0;i<input.length;i++){ 
      result += input[i] + " " + ((new RegExp("^([0]{1,}[0-9a-z].*|.*[a-z].*)$").exec(input[i]) == null) ? "Not Matched" : "Matched") + "<br/>"; 
    } 

    document.getElementById("demo").innerHTML = result ; 
} 
</script> 
</head> 
<body> 

<p id="demo"></p> 

<button type="button" onclick="display()">Display</button> 

</body> 
</html> 

更新

+0

當我testes輸入值500我得到匹配。它應該不匹配。 – cris135

+0

@ cris135立即嘗試 – Valijon

+0

它完美的作品:)謝謝:) :) – cris135

1

如何:(^0\d+\.?\d*)|(.*[a-z]+.*)

更新

+0

當我測試輸入值500或0.10000時,我得到匹配。它應該不匹配。 – cris135

+0

沒錯。它缺少一個'^':'(^ 0 \ d + \。?\ d *)|(。* [a-z] +。*)' – yarons

0

使用正則表達式@ user8708和@yarons,它們是完美的,並通過包含一個點的OP(隱藏和遲到要求)來添加新條件。排除所有其他特殊字符。

^([0]{1,}[0-9a-z].*|.*[a-z].*|^\.+)$ //by @user8708 

(^0\d+\.?\d*)|(.*[a-z]+.*)|(^\.+$) //by @yarons 

OP的無休止的要求也可以包括

..... //To be matched 
0.1....0 //To be matched 
相關問題