有谁能告诉我验证用户输入的替代方法是什么?这只是我今天写的一个非常基本的代码。
var a, b;
function cal(){
a = prompt("enter the width");
while(isNaN(a) || a <= 0 || a > 1000){
alert("Invalid Input, enter it again!");
return cal();
}
b = prompt("enter the length");
while(isNaN(b) || b <= 0 || b > 1000){
alert("Invalid Input, enter it again!");
return cal();
}
result(a,b);
}
function result(a,b){
var perimeter = (2*a)+(2*b);
var area = (a*b);
document.write("Perimeter: "+perimeter+"<br>");
document.write("Area: "+area+"<br>");
}
答案 0 :(得分:1)
另一种方法是使用新的HTML5输入类型并回退到类似this的内容 如果浏览器还不支持新的输入类型。
<input type="number" min="1" max="1000" />
但不要忘记你还必须做服务器端验证!
网上有很多很棒的资源,关于如何做到这一点。
答案 1 :(得分:0)
您可以在确认中使用正则表达式:
var ptrn=/\D/g; // 'D' is any non-digit
if(ptrn.test(b) || b <= 0 || b > 1000){
alert("Please enter only integers between 0 and 1000!");
return cal();
}