如何在JavaScript中拒绝用户输入的无效字符串

时间:2019-02-11 13:47:34

标签: javascript html5

我需要拒绝JS中无效字符串的帮助:

我想确保除数字1-6以外的任何输入都被拒绝,例如0或7+或任何其他字符,这就是我到目前为止所得到的

function getGraph() {
  var i;
  var results = [];
  var dicePoss = [1, 2, 3, 4, 5, 6]
  var tracker;

  for (i = 1; i <= 30; i++) {
    tracker = parseInt(results.push(prompt("Enter your numbers", 'diceroll')));

  }

  if (tracker <= 6 && tracker > 0) {
    document.getElementById('x-axis').innerHTML = tracker;
  } else {
    document.getElementById('reject').innerHTML = "Please enter a numberPlease enter a valid number between 1-6";
  }

  document.getElementById('y-axis').innerHTML = dicePoss;
}
<!DOCTYPE html>

<html>

<body>

  <p id="y-axis">Frequency of die rolls(results)</p>
  <p id="x-axis">Dice Possible Rolls between 1-6</p>
  <p id="reject"></p>

  <input type="button" value="Graph Column Chat for Dice Roll" onclick="getGraph();">
</body>

</html>

1 个答案:

答案 0 :(得分:2)

要解决此问题,您可以使用正则表达式:

$a = GCI $directory | Get-Random -Count $Count
$a | Copy-Item -Destination $Destination

还有一些关于您的代码的注释,您有:

var str = prompt("Enter your numbers",'diceroll');

if (str.match(/^[1-6]$/)) {
   results.push(str);
} else {
   // show error
}

这有两种错误的方式:

  • 首先,它将分析push的结果,该结果是最后推送的值的索引(数字)。
  • 第二个是该值将是最后一次推送(跟踪程序=== 30)。

在我的代码中,检查位于循环内,而不是循环外。