Этот код вообще нерабочий, в JavaScript строки в юникоде, код буквы «а» 1072, какой символ вы ожидаете получить от кода -1072?
Тут либо словарь замен составлять:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>…</title>
<style>
</style>
</head>
<body>
<input id="source-text" type="text">
<input id="encoded-text" type="text">
<script>
var source = document.getElementById("source-text"),
encoded = document.getElementById("encoded-text"),
replacements = {
"А": "Я",
"Б": "Э",
"В": "Ю",
"Г": "Ь",
"Д": "Ы",
"Е": "Ъ",
"Ё": "Щ",
"Ж": "Ш",
"З": "Ч",
"И": "Ц",
"Й": "Х",
"К": "Ф",
"Л": "У",
"М": "Т",
"Н": "С",
"О": "Р",
"П": "П",
"Р": "О",
"С": "Н",
"Т": "М",
"У": "Л",
"Ф": "К",
"Х": "Й",
"Ц": "И",
"Ч": "З",
"Ш": "Ж",
"Щ": "Ё",
"Ъ": "Е",
"Ы": "Д",
"Ь": "Г",
"Э": "В",
"Ю": "Б",
"Я": "А"
};
source.onkeyup = function encode() {
encoded.value = source.value.replace(/[а-яА-ЯёЁ]/g, function (letter) {
return replacements[letter.toUpperCase()];
});
};
</script>
</body>
</html>
либо массив букв и заменять по следующему правилу:
Сообщение от http://ru.wikipedia.org/wiki/Атбаш
|
Правило шифрования состоит в замене «i»-й буквы алфавита буквой с номером «n» − «i» + 1, где «n» — число букв в алфавите.
|