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)$/,即不需要重复^or $[0-9]可以是\d,而且{1}总是不必要的。

我不确定正则表达式是否最适合验证年龄,我不确定您为什么不能将其简化为/^\d{1,3}$/. 事物可能超过 100 年,甚至是人。

我还将使用/regex/.test()而不是验证字段string.match(/regex/)

如果您有年龄范围限制,那么在“正常代码”而不是正则表达式中进行测试,这样会更容易遵循和修改(如果您的上限发生变化)。

于 2012-09-21T09:05:18.927 回答