Javascript正则表达式验证是否只有数字以前导零开头

时间:2014-06-29 15:00:42

标签: javascript regex input

我需要使用正则表达式验证一些输入。

以下是一些示例用例和预期结果。

如果输入包含字母,则它应与正则表达式匹配,并且如果输入在开头包含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

像这样的正则表达式会是什么样的?

3 个答案:

答案 0 :(得分:1)

对于您的输入,regexp将为:"^([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> 

更新

答案 1 :(得分:1)

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

更新

答案 2 :(得分:0)

使用 @ user8708和@yarons的RegEx,这是完美的,并通过包含点“。”的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