我正在从一页阅读JS,这就是我发现的(源代码被谷歌Chrome开发工具混淆了):
var db = function(a) {
return a.replace(/[^ws.|`]/g,
function(b) {
return "\" + b
})
};
第一个逗号运算符操作数(a.replace()
操作数)有什么技巧吗?
在我看来,a.replace(/[^ws.|``]/g,
部分是完全多余的,可以删除。
我错过了什么吗?
它不是逗号运算符,而是调用.replace
的简单参数列表 - 请注意括号。
你的去混淆器最好像这样缩进它:
return a.replace(/[^ws.|`]/g, function(b) {
return "\" + b;
});
顺便说一句,该函数可以用简单的字符串"\$&"
代替。
没有逗号运算符。
请参阅有关替换的文档
newstring = str.replace(regexp, function);
格式不佳使其难以阅读。
它基本上在做
a.replace(/([^ws.|`])/g, "\$1");