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)) { ...

簡単な説明:

+「1 回以上」
{5}は「ちょうど 5 回」を意味します。

+そのため、任意の正規表現でand を{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 に答える