html代码:
<div class="submitForm">
<input type="button" value="button" onclick="doValidateForm();" /></div>
的javascript:
<script type="text/javascript">
function doValidateForm() {
if (!/^[0-9]+${5}/.test(zip) && zip != "") {
alert("Zip has invalid characters.");
return false;
}
}
</script>
问题是{5}。有了它,我得到“JavaScript运行时错误:'doValidateForm'是未定义的。”我在表达式中移动了{5}。如果不存在,代码执行正常。
我试过了:
/^[0-9]{5}+$/.test(zip)
和
/^{5}[0-9]+$/.test(zip)
但它仍然破裂。任何帮助将不胜感激。
编辑固定代码。
答案 0 :(得分:1)
你可能正在寻找这个正则表达式:
/^[0-9]{5}$/
它匹配5位数字(前导零作为数字计算)
像这样使用:
if (!/^[0-9]{5}$/.test(zip)) { ...
快速解释:
+
表示“一次或多次”
{5}
表示“恰好5次”
在任何正则表达式中,+
和{5}
一个接一个地没有意义。这有点像要求javascript来计算3+*5
是什么。这只是一个粗略的比较 - 相似之处在于没有操作数的运算符)
答案 1 :(得分:1)
这个条件:
if (!/^[0-9]+${5}/.test(zip) && zip != "")
应改写为:
if (/^\d{5}$/.test(zip) == false) {