Explain rot13 javascript.
I wrote a ROT13 cipher script rotating uppercase letters only. Can this function be improved?
ROT13 Wikipedia article
function rot13(str) {
var codeA = "A".charCodeAt(0);
var codeN = "N".charCodeAt(0);
var codeZ = "Z".charCodeAt(0);
var newArr = [];
for(var i =0; ivar code = str.charCodeAt(i);
if(code>=codeA && code<=codeZ){
if(code>=codeN)
newArr.push(String.fromCharCode(code-13));
else
newArr.push(String.fromCharCode(code+13));
}else{
newArr.push(str[i]);}
}
return newArr.join("");
}
2020 TypeScript Version:
A shift argument must be given, but you can choose 13 for rot13 javascript or any other number.
// Caesar Cipher
const caesarCipher = (string: string, shift: number) => {
// Alphabet
const alphabet: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
// Encoded Text
let encodedText: string = '';
// Adjust Shift (Over 26 Characters)
if (shift > 26) {
// Assign Remainder As Shift
shift = shift &;
}
// Iterate Over Data
let i: number = 0;
while (i < string xss=removed xss=removed xss=removed xss=removed>
// Special Characters
else {
// Append To String
encodedText += string[i];
}
// Increase I
i++;
}
return encodedText;
};
Example #1:
console.log(caesarCipher('ABCDEFGHIJKLMNOPQRSTUVWXYZ', 2));
Output:
CDEFGHIJKLMNOPQRSTUVWXYZAB
Example #2:
console.log(caesarCipher('GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.', 26 + 13));
Output:THE QUICK BROWN DOG JUMPED OVER THE LAZY FOX.