Как отклонить неверную строку для ввода пользователя в JavaScript - PullRequest
0 голосов
/ 11 февраля 2019

Мне нужна помощь с отклонением неверной строки в 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 голосов
/ 11 февраля 2019

Чтобы исправить проблему, вы можете использовать регулярные выражения:

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

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

И некоторые комментарии о вашем коде, у вас есть это:

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

}

, что неверно в двух отношениях:

  • сначала будет проанализирован результат нажатия, который является индексом (числом) последнего переданного значения.
  • , а во-вторых, это значение будет последним нажатием (tracker === 30).

В моем коде проверка идет внутри цикла, а не вне его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...