Функция шифрования JavaScript позволяет пробелы

После изучения JavaScript в течение 5 дней я написал функцию, которая шифрует только заглавные и строчные буквы.

Проблема заключается в том, что теперь я пытаюсь заставить его работать и для фраз (если пользовательский ввод "Кошки великолепны", ожидаемый вывод - "Jhaz hyl nylha"), но у меня возникают проблемы, чтобы оставить пробелы нетронутыми.

Я пытался изменить /^[a-zA-Z]+$/ в /^[a-zA-Z\s]+$/ но это не сработало.

PS: Да, это было домашнее задание, но я уже получил за него оценку, так как я только начинаю учиться, я все еще работаю над этим, чтобы улучшить свою функцию и узнать больше, любая помощь будет оценена.

function cipher() {

    do {
        word = prompt("write a word");

        var output = "";

        if (/^[a-zA-Z]+$/.test(word)) {
            for (var i = 0; i < word.length; i++) {
                var character = word.charCodeAt(i);
                var caesarCiphLow = ((character - 65 + 33) % 26 + 65);
                var caesarCiphUpp = ((character - 97 + 33) % 26 + 97);
                if (character >= 65 && character <= 90) {
                    output = output + String.fromCharCode(caesarCiphLow);
                } else if (97 <= character && character <= 122) {
                    output = output + String.fromCharCode(caesarCiphUpp);
                }
            }
            return prompt("Your ciphered text is", output);
        } else {
            alert("You must enter a word, without spaces or numbers");
        }
    } while (word === "" || !/^[a-zA-Z]+$/.test(word));

}

1 ответ

Решение

Вам не хватает обработки пробелов. Если вы встретите пробел, вам нужно вернуть его в строку вывода:

Единственные изменения, которые я внес в ваш код выше:

Добавление \s Вы упомянули:

if (/^[a-zA-Z\s]+$/.test(word)) {

Добавление оператора else

} else if (97 <= character && character <= 122) {
    output = output + String.fromCharCode(caesarCiphUpp);
}
 else
    output = output + String.fromCharCode(character);

Вход: кошки великолепны

Вывод: Джаз Хил Нилха

Другие вопросы по тегам