我需要使用正则表达式验证一些输入。
以下是一些示例用例和预期结果。
如果输入包含字母,则它应与正则表达式匹配,并且如果输入在开头包含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
像这样的正则表达式会是什么样的?
答案 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