2017-06-13 1 views
0

J'essaye de créer un caractère pour le traducteur de caractère semblable à Google Translate mais pour Chars, un peu comme un décodeur. C'est ce que j'ai jusqu'ici, mais je suis coincé près de la dernière ligne de JavaScript. Je ne sais pas ce que je dois mettre pour la dernière partie de la méthode replace() avec la replacement variablesCaractère de caractère remplacer() en utilisant javascript

<form> 

    <textarea class="form-control" id="englishform" onkeyup="replacer('englishform')" onkeydown="replacer('englishform')" placeholder="Enter English" rows="15"></textarea><br /> 
</form> 
<form> 
    <textarea class="form-control" id="albhedform" placeholder="Enter Al Bhed" rows="15"></textarea> 
</form> 


<script type="text/javascript"> 
function replacer(e){ 
    var replacement = ['y', 'p', 'l', 't', 'a', 'v', 'k', 'r', 'e', 'z', 'g', 'm', 's', 'h', 'u', 'b', 'x', 'n', 'c', 'd', 'i', 'j', 'f', 'q', 'o', 'w']; 
    var english = document.getElementById(e); 
    var albhed = document.getElementById('albhedform'); 
    albhed.value = english.value.replace(/[a-z]/gi, replacement/*here is the issue */); 
} 
</script> 

La question est donc la dernière partie de la méthode replace(). Je ne peux pas sembler obtenir les supports regex à lettre remplacé par lettre à l'aide "c => replacement[c.toLowerCase().charCodeAt(0) - 97]"

albhed.value = english.value.replace(/[a-z]/gi, c => replacement[c.toLowerCase().charCodeAt(0) - 97] 

quelqu'un peut-il expliquer ce qui doit être corrigé?

+0

Vous voulez donc que Char soit remplacé par l'ASCII correspondant ?? – Zionz

+1

Cette ligne avec '.charCodeAt (0) -97' a fonctionné pour moi une fois que j'ai ajouté la fermeture') '. Qu'est-ce qu'un exemple d'entrée pour lequel cela ne fonctionne pas? – nnnnnn

+0

Le dernier extrait est-il le code ** _ exact _ ** que vous essayez d'utiliser? –

Répondre

0

Votre code sur le violon est parfaitement bien. Vous avez juste besoin de changer la langue pour Babel + JSX et supprimer les balises de script dans la zone JavaScript. Voici juste un fiddle. Changez simplement votre JavaScript comme ci-dessous

function replacer(e){ 
    var replacement = ['y', 'p', 'l', 't', 'a', 'v', 'k', 'r', 'e', 'z', 'g', 'm', 's', 'h', 'u', 'b', 'x', 'n', 'c', 'd', 'i', 'j', 'f', 'q', 'o', 'w']; 
    var english = document.getElementById(e); 
    var albhed = document.getElementById('albhedform'); 
    albhed.value = english.value.replace(/[a-z]/gi, c => 
    replacement[c.toLowerCase().charCodeAt(0) - 97]); 
} 

Ceci est principalement dû au fait que les fonctions de flèches ne sont pas encore complètement supportées dans les navigateurs.

+0

Vous dites cela, mais si ça ne marche toujours pas, ce n'est pas bien. Merci pour l'effort –