Hello,
Could someone tell me why my code works for half letters only?
function rot13(str) {
let alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ”;
let regex= /\w/;
for (let i=0; i<str.length; i++){
if(regex.test(str[i])){
let myIndex= (alphabet.indexOf(str[i]))+13
str = str.replace(str[i] , alphabet[myIndex]);
}
}
return str;
}
here are some examples:
console.log(rot13(“SERR CVMMN!”))
console.log(rot13(“SERR PBQR PNZC”))
FEER PIZZA!
FEEE PODR CAMC
Your code so far
function rot13(str) {
let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
let regex= /\w/;
for (let i=0; i<str.length; i++){
if(regex.test(str[i])){
let myIndex= (alphabet.indexOf(str[i]))+13
str = str.replace(str[i] , alphabet[myIndex]);
}
}
return str;
}
console.log( /\w/g.test("!"))
console.log(rot13("SERR CVMMN!"))
console.log(rot13("SERR PBQR PNZC"))
console.log("SERR PBQR PNZC".match(/\w/))
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
Challenge: JavaScript Algorithms and Data Structures Projects - Caesars Cipher
Link to the challenge: