JavaScript凯撒密码算法
问题描述:
有无论如何做这个功能?,因为我觉得很难理解,特别是与char parammeter功能,我不知道我在哪里或如何使用它。JavaScript凯撒密码算法
function trans(msg, rot) {
//Reemplaza cada letra encontrada de la expresion [a-z], por el caracter codificado de la funcion
return msg.replace(/([a-z])/ig,
function(char) {
var codASCII = char.charCodeAt(0);
return String.fromCharCode(codASCII >= 97 ? (codASCII + rot + 26 - 97) % 26 + 97 : (codASCII + rot + 26 - 65) % 26 + 65);
});
}
预先感谢您
答
让我们来看看String.replace
的函数定义:
str.replace(regexp|substr, newSubStr|function [, flags]);
在JavaScript中,我们可以通过更换功能的String.replace
功能。如何填充函数的参数如in this section of MDN article所述。
基本上:
- 第一个参数是整个表达式匹配(相当于
$&
在替换字符串) - 由捕获组(相当于对
$n
内容其次其中n
为正的串数)。将有与捕获组数量一样多的论据。 - 后面跟着主匹配的偏移量
- 最后一个参数是输入字符串。
所以,无论由/([a-z])/ig
匹配将被提供给替换功能作为第一个参数(char
在这种情况下)。匹配的字符将被处理并作为替换返回。
在您的代码中,/([a-z])/ig
可简化为/[a-z]/ig
,因为替换函数仅指主要匹配。
+0
非常感谢,我发现你的回答非常清楚。 – galeonweb 2014-10-27 11:05:24
你的问题是什么?我猜你应该在搜索'ceasar cipher'和'ascii table'的时候解决这个问题。 – lupz 2014-10-27 10:07:28