javascript - 评估和提示并发症

标签 javascript newline eval prompt

所以我一直在摆弄 eval 函数,并且正在使用 prompt 进行一个小的聊天项目。如果我这样做:

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

我收到以下错误:

Uncaught SyntaxError: Invalid or unexpected token

这是因为它在求值时在字符串本身中放置了一个新行,而不是在提示中放置它。

这是 JavaScript 看到的内容:

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

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

最佳答案

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

即:

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

关于javascript - 评估和提示并发症,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49726093/

相关文章:

javascript - 从 Firefox 扩展访问 iFrame 的 dom

javascript - 执行用 .innerHTML 插入的 <script> 元素

javascript - Node.js 上的 WebSocket 并在所有连接的客户端之间共享消息

javascript - jQuery 日期选择器字段值不显示

javascript - 引用错误 newDate 未定义?

javascript - 使用 POST 方法设置跨源 Cookie

string - 如何在JavaCC中使用反斜杠转义字符换行?

c# - 在 C# 中编写 Unix 风格的文本文件

PHP:试图让 fgets() 在 CRLF、CR 和 LF 上触发

function - 在 dolist 中扩展宏