所以我一直在搞乱eval功能,正在使用提示工作一个小聊天项目。如果我这样做:
var test = 'prompt("Username: Jimbles \n Message:")'
eval(test)
我收到以下错误:
未捕获的SyntaxError:无效或意外的令牌
这是因为它在评估时会在字符串中添加一个新行,而不是将其放在提示符中。
这是JavaScript看到的内容:
'prompt("Username: Jimbles
Message:")'
我需要使用eval,因为我要从服务器获取代码,并且需要一种方法来执行它。如何在eval中成功使用newline而不会出现此错误并在eval字符串本身中添加换行符?我希望在提示符中有换行符,但不是评估的字符串。谢谢!
答案 0 :(得分:4)
由于您希望test
字面上包含\n
,因此您需要转义反斜杠。
即:
var test = 'prompt("Username: Jimbles \\n Message:")'
eval(test)