1
 var text6 = document.getElementById("text6").value;
    var regularExpression1 = /^[1-9]?[0-9]{1}$|^100$/;

  if (!text6.match(regularExpression1)){
          alert("Please enter Valid Age");
          return false;
      }

このコードは正しく機能していません

4

2 に答える 2

3

正規表現を使用しないでください。この関数を使用して、何かが数値であるかどうかを確認します

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

そしてあなたの場合

function isIntegerBetween0And100(n) {
  return isNumber(n) && n>0 && n<=100 && n%1===0;
}

はるかに高速 :)

于 2012-09-21T09:08:22.443 に答える
0

正規表現は使用していますが、は使用して|いません()

/(^[1-9]?[0-9]{1}$|^100$)/うまくいくでしょうが、それはもっと良いかもしれません。この式は、に簡略化できます。つまり、/^([1-9]?\d|100)$/を繰り返す必要はなく、を繰り返す必要があり、常に不要です。^$[0-9]\d{1}

年齢を検証するのに正規表現が最適かどうかはわかりません。単純化できない理由がわかりません/^\d{1,3}$/。物事は、人でさえ、100歳を超える可能性があります。

/regex/.test()また、の代わりにを使用してフィールドを検証しますstring.match(/regex/)

年齢範囲の制限がある場合は、正規表現ではなく「通常のコード」でテストする方が、従い、変更するのが簡単です(上限が変更された場合)。

于 2012-09-21T09:05:18.927 に答える