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;
}
此代码无法正常工作
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;
}
此代码无法正常工作
不要使用正则表达式。使用此功能检查某物是否为数字
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
对于你的情况
function isIntegerBetween0And100(n) {
return isNumber(n) && n>0 && n<=100 && n%1===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/)
。
如果您有年龄范围限制,那么在“正常代码”而不是正则表达式中进行测试,这样会更容易遵循和修改(如果您的上限发生变化)。