Eval和即时并发症

时间:2018-04-09 05:25:48

标签: javascript newline eval prompt

所以我一直在搞乱eval功能,正在使用提示工作一个小聊天项目。如果我这样做:

var test = 'prompt("Username: Jimbles \n Message:")'
eval(test)

我收到以下错误:

  

未捕获的SyntaxError:无效或意外的令牌

这是因为它在评估时会在字符串中添加一个新行,而不是将其放在提示符中。

这是JavaScript看到的内容:

'prompt("Username: Jimbles 
Message:")'

我需要使用eval,因为我要从服务器获取代码,并且需要一种方法来执行它。如何在eval中成功使用newline而不会出现此错误并在eval字符串本身中添加换行符?我希望在提示符中有换行符,但不是评估的字符串。谢谢!

1 个答案:

答案 0 :(得分:4)

由于您希望test字面上包含\n,因此您需要转义反斜杠。

即:

var test = 'prompt("Username: Jimbles \\n Message:")'
eval(test)