eval()执行的问题 标点符号的问题

libRA_kin 2009-12-25 10:00:23
responseTest={"RETCODE":"0000","cols":"3","rows":"1","resultSet":[{"logid":"AB200912240000000047","title":"test","cont":"sql.append("update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= ");<br> sql.append(" now() where logid=).append(logid).append(");23423"}]}
var rsData;
eval("rsData="+responseText);
eval执行就报错了 谁能够看看怎么解决?
这个responseText只要是这种包含一些标点符号如:“. "" ''”这样的就执行不了;
...全文
280 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
libRA_kin 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sohighthesky 的回复:]
...本身的格式都有问题,
例如:"sql.append(\"update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= \"); <br> sql.append(\" now() where logid=).append(logid).append(\");23423"除了两端的“"”都要转义
[/Quote]
现在的问题是这样的 ,那个responseText我动态读取的 如果里面有"cont"我就把"cont"后面的字符串里面的引号进行转义,没有就算了 现在我怎么才能取到那个"cont" 再怎么遍历它后面的字符串?
libRA_kin 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lihui_shine 的回复:]
HTML code<script>
responseText='{"RETCODE":"0000","cols":"3","rows":"1","resultSet":[{"logid":"AB200912240000000047","title":"test","cont":"sql.append(\\"update fitdoa.tb_oa_log set title=).append(tit?-
[/Quote]
我是根据用户输入 读取出来的 怎么进行转义呢?js有没有什么转义的函数呢?
libRA_kin 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sohighthesky 的回复:]
...本身的格式都有问题,
例如:"sql.append(\"update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= \"); <br> sql.append(\" now() where logid=).append(logid).append(\");23423"除了两端的“"”都要转义
[/Quote]
那多麻烦 那个responseText是用户输入得到的 我怎么样进行转义? 有没有什么方法?
浪尖赏花 2009-12-25
  • 打赏
  • 举报
回复
<script>
responseText='{"RETCODE":"0000","cols":"3","rows":"1","resultSet":[{"logid":"AB200912240000000047","title":"test","cont":"sql.append(\\"update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= \\"); <br> sql.append(\\" now() where logid=).append(logid).append(\\");23423"}]}';
var rsData;
eval("rsData="+responseText);
alert(rsData.cols);
</script>
sohighthesky 2009-12-25
  • 打赏
  • 举报
回复
...本身的格式都有问题,
例如:"sql.append(\"update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= \"); <br> sql.append(\" now() where logid=).append(logid).append(\");23423"除了两端的“"”都要转义
libRA_kin 2009-12-25
  • 打赏
  • 举报
回复
对了还有几行代码没贴出来:
responseText=trim(responseText);
if(responseText==""){
alert("操作失败,请检查服务日志!");
return false;
}
var rsData;
eval("rsData="+responseText);

我检查过 trim()是正常的
moliu 2009-12-25
  • 打赏
  • 举报
回复
也正困惑呢
libRA_kin 2009-12-25
  • 打赏
  • 举报
回复
我想用escape 把返回的responseText 编码 然后再反编码怎么样?
var resonsetext=this.req.responseText;
this.req.responseText=escape(resonsetext);
var rs = unescape(AnalysisJSON(this.req.responseText));

可是报语法错误怎么办?
道光2008 2009-12-25
  • 打赏
  • 举报
回复
双引号改为单
Objector 2009-12-25
  • 打赏
  • 举报
回复
1. 把responseTest = {}改成responseText
2. 把eval("rsData" + responseText)改成eval("rsData=responseText")
3. 把"sql.append("update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= "); <br> sql.append(" now() where logid=).append(logid).append(");23423"
改成
'sql.append("update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= "); <br> sql.append(" now() where logid=).append(logid).append(");23423'
(两边的双引号换成单引号)

87,910

社区成员

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

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