在 JavaScript 中将每个字母向前移动 10 个位置
问题
我们需要编写一个JavaScript函数来接收一串英文字母。我们的函数应该将每个字母向前推进10个位置。如果它超过'z',我们应该从'a'重新开始。
示例
以下是代码-
const str = 'sample string';
const moveStrBy = (num = 10) => {
return str => {
const calcStr = (ch, code) => String
.fromCharCode(code + (ch.charCodeAt(0) - code + num) % 26);
const ACode = 'A'.charCodeAt(0);
const aCode = 'a'.charCodeAt(0);
return str.replace(/[a-z]/gi, ch => (
ch.toLowerCase() == ch
? calcStr(ch, aCode)
: calcStr(ch, ACode)
));
};
};
const moveByTen = moveStrBy();
console.log(moveByTen(str));输出结果ckwzvo cdbsxq