如果输入了一个单词或负数,有没有一种方法可以循环此提示以重复自身?

Is there a way I can loop this prompt to repeat itself if a word or negative number are entered?

提示输入高低游戏的最大数量。如果没有输入正数,我需要提示重复。

      var maxInput = prompt("Please choose the maximum number.");
        var numberRounded = Math.round(maxInput);
        let rules = document.getElementById("rules");
        if (numberRounded > 1) {
            message.innerHTML = (numberRounded + " is the max number!");
            rules.innerHTML = ("Guess a number between 1 and " + numberRounded + "!");
            } else if (isNaN(numberRounded)) {
            var numberRounded = prompt("Please choose a number.");
        } ```

您可以像这样使用正则表达式:

var userInputString="";
while(!userInputString.match(/^[1-9]+[0-9]*$/)) {
  userInputString=prompt("Enter a positive whole number");
}
var userInputPositiveWholeNumber=Number(userInputString);
console.log(userInputPositiveWholeNumber);

直到用户输入一个正整数,循环才会退出。

此正则表达式有开头 - ^ 和结尾 $,但中间没有。

开头,继^
[1-9] = 1 到 9 之间的数字(因此没有前导零)。
+ = 至少一个(前面的范围)。

结束,在 $ 之前:
[0-9] = 任何数字(0 到 9 之间)。
* = 出现的非负计数 - none,一次,...无穷大(前面的范围)。

注意:有一个截止数字,其中较大的数字将采用 d.dddd+/-ed+ 格式,它们将失去准确性。


以前的版本:

第一部分 [1-9]+ 确保输入以非零和减号的数字开头,并且除了 1 到 9 之间的数字外没有其他字符。
第二部分,[0-9]* 允许任何数字的任何(甚至零)数字跟在第一部分之后。
循环退出后,我们只需将字符串转换为数字。