验证和循环javascript

时间:2019-04-24 04:17:19

标签: javascript loops validation while-loop

我需要验证三种不同提示的用户输出,并认为这会起作用,但事实并非如此。

第一个提示需要验证澳大利亚的8个州和地区中的任何一个。

第二个提示需要验证用户是否输入了整数。

第三个提示需要验证用户是否输入了可以为整数或带小数的负数或正数。

然后整个过程需要再次循环,因此可以再次询问三个提示。这样就可以建立表格了。

        function ask() {
          var stInput = '';
          var populationInput = '';
          var changeInput = '';

          var entering = confirm('Confirm to add state or territory');
          if (!entering) {
            return;
            } else {
              while (true) {
                stInput = prompt('Enter state or territory');
                    function validateUserChoice(stInput) {
                if (stInput !== "Queensland" && stInput !== "New South Wales" && stInput !== "Victoria" && stInput !== "Tasmania" && stInput !== "Northern Territory" && stInput !== "Western Australia" && stInput !== "South Australia" && stInput !== "Australian Capital Territory") {

                   } else {
                    return false;
                   }
               }
                populationInput = prompt('Enter population for ' + stInput + '');

                while(!isValid(populationInput)) {
                alert('Your input was invalid');
                populationInput = parseInt(prompt('Enter population for ' + stInput + ''));
                }
                changeInput = prompt('Enter growth rate for ' + populationInput + '');

                while(!isValid(changeInput)) {
                alert('Your input was invalid');
                changeInput = parseFloat(prompt('Enter growth rate for ' + populationInput + ''));
                }
                    break;
                }
                 alert("invalid state or territory"); 
                }

1 个答案:

答案 0 :(得分:0)

我无法说出您遇到的更大问题,但是我会告诉您,每当我使用while循环时,我总是以故障保护编程。我通常称它们为safetyValve。它可以防止系统陷入无限循环和崩溃。看起来有点像:

var myCondition = true;
var safetyValve = 0;
var safetyMax = 10000;
while (myCondition && safetyValve < safetyMax) {
  ...
  safetyValve++;
}