JS.15 · Строки
Задача
Преобразовать текст алгоритмом ROT13.
Алгоритм
Каждая буква сдвигается на 13 позиций; повторное применение возвращает исходный текст.
Исходный код
// ROT13
const rot13 = s => s.replace(/[a-z]/gi, c => {
const b = c <= 'Z' ? 65 : 97;
return String.fromCharCode((c.charCodeAt(0) - b + 13) % 26 + b);
});
console.log(rot13('Hello'));
console.log(rot13(rot13('Hello')));
Пояснения
ROT13 не требует ключа: одна функция и шифрует, и расшифровывает.