js解码莫尔斯电码

All*_*let 2 javascript morse-code

对于这个项目,我试图解码给定的摩尔斯电码字符串。编码字符由一个空格分隔,单词由三个空格分隔。我很难通过单词空格。我不断收到“wordundefinedword”。

decodeMorse = function(morseCode) {
    outPut = "";

    for (var i = 0; i < morseCode.split(" ").length; i++) {
        if (i === "   ") {
            outPut += " ";
        } else {
            outPut += MORSE_CODE[morseCode.split(" ")[i]];
        }

    }
    return outPut;
}
Run Code Online (Sandbox Code Playgroud)

例子: ””.... 。-.--" "-- .- -."" -> "HEY MAN" 对不起,奇怪的引号。如果没有外部空间,它就不会显示空间。

Eri*_*icL 5

也许有两个嵌套循环。外部循环将莫尔斯电码分割为三个空格,内部循环将单词分割为一个空格。这将解析出该字母,然后您可以使用摩尔斯电码字母的枚举来映射字母数字字符。

\n

\r\n
\r\n
// message = Halp! Morse code is driving me nuts!\nvar message = ".... .- .-.. .--. -\xc2\xb7-\xc2\xb7--     -- --- .-. ... .     -.-. --- -.. .     .. ...     -.. .-. .. ...- .. -. --.     -- .     -. ..- - ... -\xc2\xb7-\xc2\xb7--"; \nvar alphabet = {  \n   "-----":"0",\n   ".----":"1",\n   "..---":"2",\n   "...--":"3",\n   "....-":"4",\n   ".....":"5",\n   "-....":"6",\n   "--...":"7",\n   "---..":"8",\n   "----.":"9",\n   ".-":"a",\n   "-...":"b",\n   "-.-.":"c",\n   "-..":"d",\n   ".":"e",\n   "..-.":"f",\n   "--.":"g",\n   "....":"h",\n   "..":"i",\n   ".---":"j",\n   "-.-":"k",\n   ".-..":"l",\n   "--":"m",\n   "-.":"n",\n   "---":"o",\n   ".--.":"p",\n   "--.-":"q",\n   ".-.":"r",\n   "...":"s",\n   "-":"t",\n   "..-":"u",\n   "...-":"v",\n   ".--":"w",\n   "-..-":"x",\n   "-.--":"y",\n   "--..":"z",\n   "/":" ",\n   "-.-.--":"!",\n   ".-.-.-":".",\n   "--..--":","\n};\nvar messageConverted = [];\n\nmessage.split("   ").map(function (word) {\n    word.split(" ").map(function (letter) {\n        messageConverted.push(alphabet[letter]);\n    });\n    messageConverted.push(" ");\n});\n \nconsole.log(messageConverted.join(""));
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

或类似的东西。该枚举并不完整(大写字母、标点符号),但您明白了。

\n


Jos*_*kle 5

这里有一个方法,使用.map().split().join()

function decodeMorse(morseCode) {
  var ref = { 
    '.-':     'a',
    '-...':   'b',
    '-.-.':   'c',
    '-..':    'd',
    '.':      'e',
    '..-.':   'f',
    '--.':    'g',
    '....':   'h',
    '..':     'i',
    '.---':   'j',
    '-.-':    'k',
    '.-..':   'l',
    '--':     'm',
    '-.':     'n',
    '---':    'o',
    '.--.':   'p',
    '--.-':   'q',
    '.-.':    'r',
    '...':    's',
    '-':      't',
    '..-':    'u',
    '...-':   'v',
    '.--':    'w',
    '-..-':   'x',
    '-.--':   'y',
    '--..':   'z',
    '.----':  '1',
    '..---':  '2',
    '...--':  '3',
    '....-':  '4',
    '.....':  '5',
    '-....':  '6',
    '--...':  '7',
    '---..':  '8',
    '----.':  '9',
    '-----':  '0',
  };

  return morseCode
    .split('   ')
    .map(
      a => a
        .split(' ')
        .map(
          b => ref[b]
        ).join('')
    ).join(' ');
}

var decoded = decodeMorse(".-- --- .-. -..   .-- --- .-. -..");
console.log(decoded);
Run Code Online (Sandbox Code Playgroud)

  • 您的代码已被盗:) 请参阅第二个屏幕截图 https://www.bleepingcomputer.com/news/security/new-phishing-attack-uses-morse-code-to-hide-malicious-urls/ (3认同)