我正在尝试使用eval
来在我的HTML5 / JS / CSS3项目中运行用户定义的代码。如果用户定义的代码包含eval
,则代码运行时JS控制台中会出现以下错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
在
eval(a);
括号加下划线。有什么提示吗?
BTW:我正在使用Chrome
答案 0 :(得分:2)
我认为当一个字符串参数在eval里面时,在一个字符串中有'和'时会产生问题.eval是另一个eval中的一个字符串参数。解决方法是将一个函数声明为一个函数,就像在php上的那个一样
当您尝试例如
时console.log("hey you !");
添加eval
时效果很好eval('console.log("hey you!");');
这个也可以正常工作但是如果你想把这个代码包装在eval中你应该添加这样的斜杠
eval('eval(\'console.log("hey you!");\');');
这意味着当用户输入代码时总是需要添加斜杠,这段代码可以帮助你
str = str.replace(/'/g, "\\'");