位移密码算法
写一个函数,参照ROT13密码,实现输入加密字符串,输出解密字符串。(字母会移位13个位置。由’A’ ↔ ‘N’, ‘B’ ↔’O’,以此类推)。
字母都是大写,不转化任何非字母形式的字符(空格,标点符号)
function rot13(str) {
var arr = str.split('');
arr = arr.map(function (item) {
if(/[A-Z]/.test(item)){ //判断字母
var num = 0;
if(item.charCodeAt() - 13 < 65){ //若是小于A,则返回从Z往前算
num = 90 - (65 - (item.charCodeAt() - 13) - 1);
}else{
num = item.charCodeAt() - 13; //得出字符编号
};
strs = String.fromCharCode(num); //根据计算后的字符编号找出字符
return strs;
}else{
return item;
};
});
arr = arr.join('');
return arr;
}
rot13("SERR PBQR PNZC");