javascript - 是否允许嵌套评估?

标签 javascript html web eval

我正在尝试使用 eval 在我的 HTML5/JS/CSS3 项目中运行用户定义的代码。如果用户定义的代码包含 eval,那么当代码运行时,我会在 JS 控制台中收到以下错误:

Uncaught SyntaxError: Unexpected token ILLEGAL

eval(a);

带括号的下划线。有什么建议吗?

顺便说一句:我正在使用 Chrome

最佳答案

我认为当一个字符串参数位于 eval 内(而 eval 内的字符串参数又是另一个 eval 内的字符串参数)时,一个字符串中存在 ' 和 "时就会导致问题。解决方案是声明一个函数来 addshalshes,就像 php 上的函数一样.

当你尝试例如

console.log("hey you !");

当你添加 eval 时,它工作正常

eval('console.log("hey you!");');

这个也可以正常工作,但是如果你想将此代码包装在 eval 中,你应该像这样添加斜杠

eval('eval(\'console.log("hey you!");\');');

这意味着当用户输入他的代码时你总是需要添加斜杠,这个代码可能会帮助你

str = str.replace(/'/g, "\\'");

关于javascript - 是否允许嵌套评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24965221/

相关文章:

javascript - 了解 socket.io 的文档模式

javascript - 访问类的引用

javascript - 当它到达浏览器的顶部时,位置固定了我的表格的第一行

css - 相对于中心定位页面元素

javascript - 仅 getElementsByName?

Javascript 正则表达式替换结束标签和开始标签

HTML TextArea 适合内容(在页面加载时)

javascript - 如何在动画 Canvas 中增加简单形状的颜色

function - 如何检查已停止的网站并使用 powershell 函数启动这些网站

java - 多个子域的 Web 应用程序身份验证