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;
}
此代码无法正常运行
答案 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/)
验证字段。
如果您有年龄范围限制,那么在“正常代码”而非正则表达式中进行测试,可以更容易地进行跟踪和修改(如果您的上限发生更改)。