eval 未结束字符串常量

速度4 2007-04-09 06:30:08
msg.responseText的值是{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}

var newMsg = eval('('+msg.responseText+')');

为什么报错未结束字符串常量
...全文
547 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
matrixy 2007-04-10
  • 打赏
  • 举报
回复
*^_^*
meizz 2007-04-10
  • 打赏
  • 举报
回复
明明很简单的东西,自己非要很牛角尖里钻,硬是要在外面套上一个括号,干吗??

var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
var ss;
eval("ss = "+ str);
alert(ss.msg)
meizz 2007-04-10
  • 打赏
  • 举报
回复
new Function 很晦涩吗?那我再用 eval:

var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
eval("ss = "+ str);
alert(ss.msg)
tncboy 2007-04-10
  • 打赏
  • 举报
回复
to 楼主 and matrixy:
奇怪啊,我刚去测了一下帖的代码,没有问题啊!? 引不引号都一样
如下:
var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
var newMsg = eval('('+str+')');
alert(newMsg)

to meizz大侠:
如果能eval搞定,非得要去用那种晦涩的Function吗? 这样改,我觉得看着都累
meizz 2007-04-10
  • 打赏
  • 举报
回复
别老是整天只想着 eval ,将字符串转换成脚本方法很多:

<SCRIPT LANGUAGE="JavaScript">
var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
var f = new Function("return "+ str);
alert(f().msg)
</SCRIPT>
matrixy 2007-04-10
  • 打赏
  • 举报
回复
关键在于,此处他加上了引号才引起的那个错误!
tncboy 2007-04-10
  • 打赏
  • 举报
回复
msg这个key要不要引号,没所谓的。

两种改法:
var newMsg = eval('['+msg.responseText+']'); // 变成数组
或者
eval("var newMsg = " + msg.responseText); // 解释附值
matrixy 2007-04-10
  • 打赏
  • 举报
回复
把这个
{'msg':[{'a'
改成
{msg:[{'a'
不需要引号的
速度4 2007-04-10
  • 打赏
  • 举报
回复
这是ppjoke聊天程序的一段代码,已经想到其它方法搞定了,主要是利用AJAX做到无刷滚屏但又不想ppjoke那样复杂,所以自己尝试写了个程序。
tncboy 2007-04-10
  • 打赏
  • 举报
回复
晦涩的确只是我个人的感觉,见仁见智吧.
不过,如果按楼主的那种赋值方式,右边串中不加括号真是不行啊,报语法错...
adverse 2007-04-09
  • 打赏
  • 举报
回复
应该是单引号和前边的匹配了,这样改
var newMsg = eval(msg.responseText);
说明:解压后要注意把文件属性修改一下,解锁即可用 目录表 前言 本书的读者 本书的由来 本书目前的状况 官方网站 约定条款 欢迎给我反馈 值得思考的一些东西 1. 介绍 简介 Python的特色 概括 为什么不使用Perl? 程序员的话 2. 安装Python Linux和BSD用户 Windows®用户 概括 3. 最初的步骤 简介 使用带提示符的解释器 挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 缩进 概括 5. 运算符与表达式 简介 运算符 运算符优先级 计算顺序 结合规律 表达式 使用表达式 概括 6. 控制流 简介 if语句 使用if语句 它如何工作 while语句 使用while语句 for循环 使用for语句 break语句 使用break语句 continue语句 使用continue语句 概括 7. 函数 简介 定义函数 函数形参 使用函数形参 局部变量 使用局部变量 使用global语句 默认参数值 使用默认参数值 关键参数 使用关键参数 return语句 使用字面意义上的语句 DocStrings 使用DocStrings 概括 8. 模块 简介 使用sys模块 字节编译的.pyc文件 from..import语句 模块的__name__ 使用模块的__name__ 制造你自己的模块 创建你自己的模块 from..import dir()函数 使用dir函数 概括 9. 数据结构 简介 列表 对象与类的快速入门 使用列表 元组 使用元组 元组与打印语句 字典 使用字典 序列 使用序列 参考 对象与参考 更多字符串的内容 字符串的方法 概括 10. 解决问题——编写一个Python脚本 问题 解决方案 版本一 版本二 版本三 版本四 进一步优化 软件开发过程 概括 11. 面向对象的编程 简介 self 类 创建一个类 对象的方法 使用对象的方法 __init__方法 使用__init__方法 类与对象的变量 使用类与对象的变量 继承 使用继承 概括 12. 输入/输出 文件 使用文件 储存器 储存与取储存 概括 13. 异常 错误 try..except 处理异常 引发异常 如何引发异常 try..finally 使用finally 概括 14. Python标准库 简介 sys模块 命令行参数 更多sys的内容 os模块 概括 15. 更多Python的内容 特殊的方法 单语句块 列表综合 使用列表综合 在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. 关于本书 后记 关于作者 关于译者 关于简体中文译本 C. 修订记录 时间表 术语表 表格 5.1 运算符与它们的用法 5.2 运算符优先级 15.1 一些特殊的方法 例子 3.1 使用带提示符的Python解释器 3.2 使用源文件 4.1 使用变量和字面意义上的常量 5.1 使用表达式 6.1 使用if语句 6.2 使用while语句 6.3 使用for语句 6.4 使用break语句 6.5 使用continue语句 7.1 定义函数 7.2 使用函数形参 7.3 使用局部变量 7.4 使用global语句 7.5 使用默认参数值 7.6 使用关键参数 7.7

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧