2014-10-10 29 views
-3

我试图在JavaScript中制作一个文本到二进制转换器,但我似乎无法想到这一点。如果我输入字母a,它会被转换为a的二进制形式,但是如果我输入ab,它会说未定义。在JavaScript中制作翻译器

我想要做的是如果我输入ab,输出将是0110000101100010.我只是无法想象它通过。我在JavaScript方面经验不足。也许在JQuery中有一种更简单的方法?尽管如此,我还是不了解JQuery。感谢提前:)

<html> 
    <head> 
     <title>Text to Binary</title> 
     <script type="text/javascript"> 
      function process() { 
       switch (result) { 
        case "a": 
         return "01100001"; 
        case "b": 
         return "01100010"; 
        default: 
         return "Undefined"; 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      var ask=prompt("Whatever you enter will be converted to binary."); 
      var result=ask.toLowerCase(); 
      process(); 

      document.write(process()); 
     </script> 
    </body> 
</html> 
+0

http://stackoverflow.com/questions/14430633/how-to-convert-text-to-binary-code-in-javascript – MLeFevre 2014-10-10 11:29:14

+0

你好马克,没有任何帮助,下面的答案?如果是这样,你应该接受其中之一。 – 2014-10-19 17:38:12

回答

1

发送到功能process()要作为参数转换的信。

function process(letter) { 
     switch (letter) { 
      case "a": 
       return "01100001"; 
      case "b": 
       return "01100010"; 
      default: 
       return "Undefined"; 
     } 
    } 

则:for each信你的字符串,调用函数,函数的结果追加到结果变量。最后打印结果。

而且,看到了这个问题:How to convert text to binary code in JavaScript?

+0

感谢:D对不起,如果这是一个重复的问题。我不能不知道谷歌如何搜索它。我在寻找append这个词:P – 2014-10-10 11:47:58

3

当我明白你的问题正确,您尝试将字符串a转换成字符串01100001。这有效,它也适用于b。当你想要转换字符串ab时,会发生什么情况,就是你的switch语句的default语句被评估,因为没有abab的情况。

您的解决方案是,您需要将result拆分为每个单个字符,并且对result的每个字符调用process(letter)

无论如何,最通用的解决方案将是类似于这里的东西https://gist.github.com/eyecatchup/6742657。只是发现它搜索。

0
 function letterToBin(l){ 
     var str="" 
     var keys = { 
     "a" : "01100001", 
     "b" : "01100010", 

     } 
     for(var i = 0; i < l.length; i++){ 
      var index = l[i] 
      str+=keys[index] 
     } 
     return str; 
     } 
     alert(letterToBin("bb"))