有没有做这个功能?,因为我觉得很难理解,特别是那个带有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 );
});
}
提前谢谢
答案 0 :(得分:2)
让我们看一下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
,因为替换功能仅指主要匹配。