我正在尝试编写一个脚本来接受最多 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')
}
}
这是我到目前为止所做的,但是 else if
内的 while
不起作用,我不知道如何修复它。我该如何解决这个问题?
最佳答案
这是一个如何工作的示例,如果您对特定代码行有任何疑问,请告诉我:)
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>
关于javascript - 从用户那里收集二进制数并在 JavaScript 中将其转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60285247/