Как сделать так, чтобы нельзя было вводить больше двух чисел и чтобы эти числа были от 1 до 10?

Как сделать так, чтобы нельзя было вводить больше двух чисел и чтобы эти числа были от 1 до 10, без ноля, пробовал через матч, но чо то не разобрался совсем, не могу понять логику, как сделать

function count(string) {
  if (string.match(/\//) == '/') {
    switch(string) {
      case string: 
        if (string.indexOf('/')) {
          if(eval(string) >= 1) { 
            console.log('Я здесь')
            return String(Math.round(eval(string)));
          } else {
            console.log('Я вот здесь')
            return String(0);
          }
        };
    };
  } else {
    console.log('Я тута')
    return String(eval(string));
  };
};


Ответы (1 шт):

Автор решения: Алексей Шиманский

Не будем углубляться в то, что код совсем не оч. Будем просто отвечать на вопрос.


Предположим строка

let str = '32 / 55';

Найдём все числовые символы

let regexp = /\d+/g;
let str = '32 / 55';
let result = [...str.matchAll(regexp)];

console.log(result);

Теперь нужно смотреть в result. Если result.length > 2 то значит ввели больше двух чисел

Если длина массива равна 2 - то идём дальше по коду.

Эти числа можно сложить в переменные a и b

let [a, b] = [+result[0][0], +result[1][0]];

Дальше уже их использовать если надо.

let regexp = /\d+/g;
let str = '32 / 55';
let result = [...str.matchAll(regexp)];
let [a, b] = [+result[0][0], +result[1][0]];
console.log(`Значение первой переменной: ${a}, значение второй: ${b}`);

Проверить что они от 1 до 10 можно с помощью if

→ Ссылка