【问题标题】:I dont know what these symbols in this code mean. Decimal to binary我不知道这段代码中的这些符号是什么意思。十进制转二进制
【发布时间】:2015-06-04 05:04:58
【问题描述】:
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);

完成,我有点理解,但想进一步解释。

【问题讨论】:

  • 它在我看来就像一个正则表达式。
  • 第一个是正则表达式。
  • 不管怎样,这看起来不是很好的代码。
  • @RobertHarvey 同意。 0/10 不会向这位老师学习。

标签: javascript binary decimal


【解决方案1】:
  1. /[^0-9]/g 是一个正则表达式,它匹配任何非十进制数字。因此,如果x 包含任何非数字,/[^0-9]/g.test(x) 将是真的。如果x 是空字符串,则x == "" 为真。结合它们,如果x 为空或包含非数字,则(/[^0-9]/g.test(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 是二进制的。

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 1970-01-01
    • 2019-06-08
    • 2014-03-31
    • 2012-03-14
    • 1970-01-01
    • 2014-01-10
    • 2018-07-07
    • 2014-01-05
    相关资源
    最近更新 更多