@RIND

Как сделать что-бы не шифровало Пробел в JS Шифр ЦЕЗАРЯ?

Здравствуйте, есть задание написать шифр цезаря на js, я сделал его, но при вводе слов для шифрования при нажатии на пробел в выводе выскакивает undefinid, как добавить пробел что-бы его не шифровало
Вот код
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function shiftAlphabet(shift) {
    console.log(shift)
    var shiftedAlphabet = '';
    //новый алфавит
    for (var i = 0; i < alphabet.length; i++) {
        //console.log(i, alphabet[i+shift]);
        currentLetter = (alphabet[i + shift] === undefined) ? (alphabet[i + shift - alphabet.length]) : (alphabet[i + shift]);
        //Текущая буква со сдвигом, если выходим за рамки длины алфавита - берем с начала алфавита

        shiftedAlphabet = shiftedAlphabet.concat(currentLetter);
    }
    return shiftedAlphabet;
}

console.log(shiftedAlphabet);

function encrypt() {
    var message = document.getElementById('message').value;
    var shift = parseInt(document.getElementById('shift').value);
    var shiftedAlphabet = shiftAlphabet(shift);
    var encryptedMessage = '';
    for (var i = 0; i < message.length; i++) {
        var indexOfLetter = alphabet.indexOf(message[i].toUpperCase());
        encryptedMessage = encryptedMessage.concat(shiftedAlphabet[indexOfLetter]);
    }
    document.getElementById('cipher').value = encryptedMessage.toLowerCase();
}

function decrypt() {
    var message = document.getElementById('cipher').value;
    var shift = parseInt(document.getElementById('shift').value);
    var shiftedAlphabet = shiftAlphabet(shift);
    var encryptedMessage = '';
    for (var i = 0; i < message.length; i++) {
        if (message[i] == ' ') {
            encryptedMessage = encryptedMessage.concat(' ');
            continue
        };
        var indexOfLetter = shiftedAlphabet.indexOf(message[i].toUpperCase());
        encryptedMessage = encryptedMessage.concat(alphabet[indexOfLetter]);
    }
    document.getElementById('cipher').value = encryptedMessage.toLowerCase();
}
  • Вопрос задан
  • 404 просмотра
Пригласить эксперта
Ответы на вопрос 1
OKyJIucT
@OKyJIucT
Sunshine reggae
Отслеживайте нажатие клавиш по их коду. Если пробел - игнорируйте его. Либо вообще все нажатия сравнивать с белым списком. https://css-tricks.com/snippets/javascript/javascr...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы