javascript-caesar密码算法
还有什么方法可以实现这个函数吗?因为我发现它很难理解,特别是带有char参数的函数,我不知道我在哪里或者如何使用它javascript-caesar密码算法,javascript,regex,string,encryption,Javascript,Regex,String,Encryption,还有什么方法可以实现这个函数吗?因为我发现它很难理解,特别是带有char参数的函数,我不知道我在哪里或者如何使用它 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) {
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 );
});
}
提前感谢您让我们看看的函数定义:
str.replace(regexp|substr, newSubStr|function [, flags]);
在JavaScript中,我们可以将替换函数传递给String.replace
函数。描述了如何填充函数的参数
基本上:
- 第一个参数是匹配整个表达式的字符串(相当于替换字符串中的
)$&
- 然后是捕获组的内容(相当于
,其中$n
为正数)。将有与捕获组的数量一样多的参数n
- 然后是主匹配的偏移量
- 最后一个参数是输入字符串
/([a-z])/ig匹配的任何内容都将作为第一个参数提供给替换函数(char
)。匹配的字符将被处理并作为替换字符返回
在您的代码中,/([a-z])/ig
可以简化为/[a-z]/ig
,因为替换函数只涉及主匹配项。您的问题是什么?我猜你应该在搜索“Cesar cipher”和“ascii table”时找到答案。非常感谢,我发现你的答案非常清楚。