我不知道这段代码中的这些符号是什么意思。十进制到二进制

时间:2015-03-31 00:52:41

标签: javascript binary decimal

function dec2bin (decimal) {
var x = document.getElementById("deci").value;
if ((/[^0-9]/g.test(x)) || x == "") {
alert ("You must enter an integer decimal number!");
document.getElementById("deci").value = "";
document.getElementById("deci").focus();
return false;
}
x = parseInt(x);
var bin = x.toString(2);

var figs = "The binary representation of " + x + " is " + bin + "<br>";

document.getElementById("result").innerHTML = figs;

这是我老师给我们的示例代码。它是一个十进制到二进制转换器。我不完全确定这些符号的含义是什么。例如,if语句。究竟是什么

(/[^0-9]/g.test(x)) || x == "")

做什么?

究竟是什么呢?
x = parseInt(x);
var bin = x.toString(2);

完成,我有点理解,但希望得到进一步的解释。

1 个答案:

答案 0 :(得分:0)

  1. /[^0-9]/g是一个正则表达式,匹配任何非十进制数字。如果/[^0-9]/g.test(x)包含任何非数字,则x将为真。如果x == ""是空字符串,则x为真。如果(/[^0-9]/g.test(x)) || x == "")为空或包含非数字,则组合它们x为真。换句话说,如果输入不是十进制数字序列,则为真。您可以在http://www.regular-expressions.info/

  2. 了解有关正则表达式的更多信息
  3. x = parseInt(x);调用Javascript parseInt()函数,该函数将表示整数的字符串转换为整数。顺便说一下,你应该总是提供第二个参数来指定基数,因为它可能在实现之间有所不同;通常应该x = parseInt(x, 10);表示您正在解析小数。

  4. var bin = x.toString(2);调用Javascript Number.prototype.toString方法。这会将数字转换为指定输出基数中的字符串。基数2是二进制。