попробуйте это, он использует регулярное выражение, чтобы проверить, содержит ли строка числа, отличные от 1 и 0, если да, то показывает предупреждение для ввода допустимого двоичного числа:
var re = new RegExp("([23456789])");
submit.addEventListener('click', e => {
const bin = binary.value;
if(bin && !re.test(bin)) {
if(bin.length <=8) {
let dec = 0;
for (let i = bin.length-1; i >=0; i--) {
dec += parseInt(bin[i]) * Math.pow(2, bin.length - 1 - i);
}
decimal.value = dec
}else {
alert('enter less than 8 numbers')
}
}else {
alert('Please enter valid binary number')
}
});
Вот веб-сайт где вы можете создавать регулярные выражения, и он покажет вам их объяснение: https://regexr.com/. Введите здесь регулярное выражение для объяснения!