JavaScript eval - “SyntaxError:Unexpected token ILLEGAL”

时间:2013-12-27 15:22:49

标签: javascript object eval

eval("Encryption={Load:function(enc){var id=enc.split('/z');var e=[id[0],id[2]];id=toNumber(string.reverse(id[1]));enc=e.join('');e=enc.substring(1).split('/');var fin='';console.log(id);for(var CN=0;CN<e.length;CN++){fin+=string.char(toNumber(e[CN])/id);}eval(fin);}};");

这一切都在一条线上,因为在字符串中添加新行(即使我只是放了\ n),会导致另一个错误。

当我运行此操作时,我收到错误"Uncaught SyntaxError: Unexpected token ILLEGAL"

我无法理解为什么。我确实开始砍掉一些代码,发现错误发生在

之后
e=enc.substring(1).split('/');

已添加。

因此,如果我删除加密的加载功能中的所有内容,包括它,它将起作用。 虽然我需要所有的功能。

我做了谷歌,似乎没有什么适合我想要的。

1 个答案:

答案 0 :(得分:4)

您发布的初始代码中有一个无效字符,您在编辑中修复了该字符:

enter image description here

这很好用:

eval("Encryption={Load:function(enc){var id=enc.split('/z');var e=[id[0],id[2]];id=toNumber(string.reverse(id[1]));enc=e.join('');e=enc.substring(1).split('/');var fin='';console.log(id);for(var CN=0;CN<e.length;CN++){fin+=string.char(toNumber(e[CN])/id);}eval(fin);}};");

从这个this jsfiddle可以看出。