javascript - 如何检查输入是否只包含0和1?
问题描述
我正在尝试制作二进制到十进制的转换器。
我想将输入减少到 8 位,并且只允许使用 JavaScript 函数的 0 和 1。
第一个测试有效,但我还没有成功检测到除了 0 和 1 以外的其他字符的输入。我怎样才能做到这一点?
这是我迄今为止尝试过的:
function bin2dec() {
var bin = document.getElementById("input").value;
if (bin.length > 8) {
document.getElementById("alert").innerHTML = "8 digits";
} else if (bin > 2) {
document.getElementById("alert").innerHTML = "Enter binary value";
} else {
document.getElementById("output").innerHTML = parseInt(bin, 2);
}
}
解决方案
bin > 2
仅检查输入是否为十进制数以及是否小于 2。我认为这不是您想要的。尝试这样的事情:
function bin2dec() {
var bin = document.getElementById("input").value,
num;
if (bin.length > 8) {
document.getElementById("alert").innerHTML = "8 digits";
} else if (isNaN(num = parseInt(bin, 2))) {
document.getElementById("alert").innerHTML = "Enter binary value";
} else {
document.getElementById("output").innerHTML = num;
}
}
解释:isNaN(num = parseInt(bin, 2))
将解析后的值赋给num
,如果它是无效的 ( NaN
),则表示"Enter binary value"
,否则继续该else
语句。