我想在javascript中使用age字段的正则表达式

时间:2012-09-21 09:02:21

标签: javascript

 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;
      }

此代码无法正常运行

2 个答案:

答案 0 :(得分:3)

不要使用正则表达式。使用此功能检查某些内容是否为数字

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

对于你的情况

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

快得多:)

答案 1 :(得分:0)

您的正则表达式使用|但没有()

/(^[1-9]?[0-9]{1}$|^100$)/可行,但可能更好。此表达式可以简化为/^([1-9]?\d|100)$/,即无需重复^$[0-9]可以是\d{1}是总是没必要的。

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

我还会使用/regex/.test()代替string.match(/regex/)验证字段。

如果您有年龄范围限制,那么在“正常代码”而非正则表达式中进行测试,可以更容易地进行跟踪和修改(如果您的上限发生更改)。