2013-03-27 31 views
0

我有几个函数旨在将用户输入转换为字符串为二进制数字。这是我正在开发的基本“汇编程序”程序的一部分。这里是我的代码:如何从字符串中删除字符,并从新字符串中返回数字 - Javascript

function generateBinaryNumber(inputValue) //only works for hash! 
{ 
    var number; 

    if(containsHash(inputValue) != -1) 
    { 
     number = getNumberFromString(inputValue); 
    } 

    return decimalToBinary(number); 
} 

function containsHash(number) //Working! 
{ 
    var n = number.indexOf('#'); 
    return n; 
} 

function getNumberFromString(mixedInput) //Working! 
{ 
    return (mixedInput.replace('#','')); 
} 

function decimalToBinary(decimal) //Working! 
{ 
    decimal = parseInt(decimal); 
    return decimal.toString(2); 
} 

如果用户输入例如的“5”值,函数返回NaN - 但是,如果他们指定#5它的工作原理 - 返回101。我是编程和Javascript新手,如果任何人都可以指出我的方向,那就太棒了。谢谢!

+0

什么问题? – isherwood 2013-03-27 01:03:45

回答

0

你没有通过输入如果没有#

function generateBinaryNumber(inputValue) //only works for hash! 
{ 
    var number; //number is not set 

    if(containsHash(inputValue) != -1) 
    { 
     //number is set here, but only if the if statement is true 
     number = getNumberFromString(inputValue); 
    } 
    //if containsHash was false, number is undefined 
    return decimalToBinary(number); 
} 

您只想说var number=inputValue;你把它声明

作为一个侧面说明,你也应该基数参数添加到您的parseInt(类似于parseInt(decimal,10)),否则它会将输入如"010"视为十六进制数字,并将不正确地解析它。

+0

谢谢Ben!我知道这会是一件愚蠢的事情。干杯 – moleman 2013-03-27 01:13:51