Соберите двоичное число от пользователя и преобразуйте его в десятичное число в JavaScript - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь написать скрипт, который принимает максимум 8 двоичных элементов, проверяет, действительно ли они являются двоичными, и показывает их представление в десятичных числах. Я застрял в проверке. Я довольно новичок в программировании и не знаю, как решить эту проблему.

function verify() {
    var numBin = document.getElementById('bin-input')
    var c = 0
    if (numBin.value == "" || numBin.value.length > 8 || isNaN(numBin) == "True"){
        alert('Write only 8 binary elements!')
    } else (while (numBin.value.length != c){
        if (numBin.length[c] == '0'|| numBin.length[c] == '1'){
            c ++
        } else {
            break
        }
        }){
            alert('Write only 0 and 1')
        }

}

Это то, что я сделал до сих пор, но while внутри else if не работает, и я не знаю, как это исправить. Как я могу исправить эту проблему?

1 Ответ

1 голос
/ 18 февраля 2020

Вот пример того, как это может работать, если у вас есть какие-либо вопросы для указания c строк кода, дайте мне знать:)

function verifyAndConvert() {
  let input = document.getElementById('bn').value;
  if (verify(input)) {
    convert(input);
  }
}

function verify(input) {
  var numBin = input;
  var c = 0;
  var binaryFormat = /^[0-1]+$/;
  if (numBin.length > 8 || isNaN(numBin)) {
    alert('Write no more than 8 binary elements!');
  } else if (!numBin.match(binaryFormat)) {
    alert('Write only 0 and 1');
  } else {
    return true;
  }
  return false;
}

function convert(input) {
  alert(parseInt(input, 2));
}
<label for="fname">Binary Number:</label>
<input type="text" id="bn">
<button onclick="verifyAndConvert()">Verify and Convert</button>
...