0

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)

但它仍然会破裂。任何帮助将不胜感激。

编辑固定代码。

4

2 回答 2

1

您可能正在寻找这个正则表达式:

/^[0-9]{5}$/

它匹配 5 位数字(前导零算作数字)

像这样使用它:

if (!/^[0-9]{5}$/.test(zip)) { ...

快速解释:

+表示“一次或多次”
{5}表示“正好 5 次”

因此,在任何正则表达式中一个接一个+地拥有是没有意义的。{5}这有点像要求 javascript 计算是什么3+*5。这只是一个粗略的比较——相似之处在于没有操作数的运算符)

于 2013-08-07T20:33:19.630 回答
1

这个条件:

if (!/^[0-9]+${5}/.test(zip) && zip != "")

应改写为:

if (/^\d{5}$/.test(zip) == false) {
于 2013-08-07T20:33:51.540 回答