1

谁能告诉我验证用户输入的替代方法是什么?这只是我今天写的一个非常基本的代码。

  • 有一个用 HTML 编码的按钮
  • 当用户点击它时,它会提示输入
  • 输入只是数字


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>");
    }
4

2 回答 2

1

一种替代方法是使用新的 HTML5 输入类型,如果浏览器还不支持新的输入类型,则回退到类似的东西

<input type="number" min="1" max="1000" />

但不要忘记,您仍然必须进行服务器端验证!

网上有很多很棒的资源,关于如何做到这一点。

HTML 文本输入只允许数字输入

于 2013-08-19T16:19:04.957 回答
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();
}
于 2013-08-19T16:54:20.973 回答