2014-12-10 2 views
-3

"Hello world"와 같은 일반적인 영어 텍스트 메시지를 작성하고 각 문자를 my로 정의 된 문자로 변환 할 수있는 브라우저 기반 텍스트 변환 도구를 개발하려고합니다. 암호문 -이 경우 "A # EC# C# Ab EdAbFbC# D"가됩니다.자바 스크립트 암호 - 문자를 다른 문자로 변환

각 문자에는 일대일 매핑이 있습니다. 지금까지 나는 미리 계산 된 암호를 다음과 같이 정의했다.

var map { 
    a : "A"; 
    b : "B"; 
    c : "C"; 
    d : "D"; 
    e : "E"; 
    f : "F"; 
    g : "G"; 
    h : "A#"; 
    i : "E#"; 
    j : "B#"; 
    k : "F#"; 
    l : "C#"; 
    m : "G#"; 
    ... 
} 

등등.

질문은 - "Hello world"와 같은 html 텍스트 상자에서 텍스트 입력을 가져 와서 문자를지도의 해당 문자로 다른 텍스트 상자로 변환하는 방법 ("A # EC# C# Ab EdAbFbC# D ")? 정말

+1

이것은 잘못된 JavaScript입니다. 거기에서 뭐하는거야? 'var map {...} '이란 무엇입니까? –

+0

당신은 또한 그것을 대체하는 데 어려움을 겪을 것입니다. 아마 다른지도를 사용해야합니다. 각 문자는 ** 하나 ** 다른 문자로 대체됩니다. –

+0

나는 이것이 당신이 칸 아카데미의 암호 과정을 듣는 것이 안전하지 않은 이유를 알고 싶다면 1 시간도 안 걸릴 것입니다. free – renatoargh

답변

3

단순 :

var result = myString.split('') // Split the string into an array 
    .map(function(c){   // Replace the characters in the array 
     return map[c]; 
    }) 
    .join('');    // Rebuild the string from the resulting array. 

귀하의 map 객체는하지만, 약간 다르게 선언 할 필요가 :

var map = { // < `=`-sign 
    a : "A", 
    b : "B", 
    c : "C", 
    // ^comma's, not semicolons 
} 

을 자,이 대체하는 경우가 있음을 염두에 두어야 할 것이다 -민감한.

+0

참고 : map 및 join 함수는 원래 문자열을 업데이트하지 않으므로 어딘가에 할당해야합니다. – Eyal

+0

@Eyal : 그 xD에 대해 완전히 잊었습니다 – Cerbrus

+0

@Cerbrus에 감사드립니다. 나는 아직도이 일을 돕는 데 약간의 도움이 필요하다. 이것은 지금까지 제 코드입니다. 그 밖의 무엇이 필요합니까? '<텍스트 영역 NAME = "텍스트 상자"COLS은 = "50"행 = "5">

<텍스트 영역 NAME = "TextBox1에"COLS = "50"행 = "5"> ' –

관련 문제