忽略Javascript中Caeser Cipher中的特殊字符和空格



我正在创建一个javascript程序,该程序要求用户输入一个句子,然后通过将每个字母替换为字母表中15个字符的字母来加密该句子。我不确定如何让输入保持特殊字符和空格,而不是试图加密这些。

let userInput = prompt("Please enter any text to encrypt it:");
let lowerInput = userInput.toLowerCase();

function startEncryption() {
let encryptedMessage = "";
let shift = 15;
for (letter of lowerInput) {
encryptedMessage += shiftLetter(letter, shift);
}  
console.log(encryptedMessage);
}
startEncryption();
function shiftLetter(letter, shift) {
let newLetter = "";
let letterCode = letter.charCodeAt(0);
let newLetterCode = letterCode + shift;
if (newLetterCode < 97) {
newLetterCode += 26;
} else if (newLetterCode > 122) {
newLetterCode -= 26;
}
newLetter = String.fromCharCode(newLetterCode);
return newLetter;
}

您可以在shiftLetter函数中添加一个保护子句,如果发现无效的字母/符号,则提前退出。

function shiftLetter(letter, shift) {
if (!letter.match(/^[a-z]$/i)) { return letter }
// the rest of your code
}

相关内容

  • 没有找到相关文章

最新更新