2015-03-31 39 views
0
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); 

完成,我有點理解,但想進一步的解釋。

+0

它看起來像一個正則表達式給我。 – 2015-03-31 00:54:21

+0

第一個是正則表達式。 – Barmar 2015-03-31 00:54:33

+1

對於它的價值,這看起來不是很好的代碼。 – 2015-03-31 00:54:54

回答

0
  1. /[^0-9]/g是一個正則表達式,它匹配任何不是十進制數的東西。如果x包含任何非數字,那麼/[^0-9]/g.test(x)將爲真。 x == ""如果x是空字符串,則爲true。如果x爲空或包含非數字,則合併它們,(/[^0-9]/g.test(x)) || x == "")爲真。換句話說,如果輸入不是一個十進制數字序列,這是真的。您可以在http://www.regular-expressions.info/

  2. x = parseInt(x);瞭解正則表達式中調用JavaScript parseInt()功能,這將表示整數到整數的字符串。順便說一句,你應該總是提供第二個參數來指定基數,因爲它在實現中可能會有所不同;它通常應該是x = parseInt(x, 10);以表明您正在解析十進制。

  3. var bin = x.toString(2);調用Javascript Number.prototype.toString方法。這將數字轉換爲指定輸出基數中的字符串。基數2是二元的。