电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > javascript > 正文
解决JS使用Eval传递参数单引号出错的问题
解决JS使用Eval传递参数单引号出错的问题
2010-3-19 9:04:00  文/佚名   出处:cnblogs   
最近在弄JS验证功能的时候 遇到了Eval的参数问题,花了些时间解决之后,稍微总结了下。
问题示例:
<HTML>
<BODY>
<script>
 var test =
 {show:function(str){alert(str);}}
 var s = "ffd'd" ;
 eval("test.show('" +s + "')");
</script> 
</BODY>
</HTML>
执行会报缺少')'
方法一:把方法参数作为JS类的属性
<script>
 var test = {show:function(){alert(this.str);},str:''};
 var s = "ffd'd" ;
 test.str = s;
 test.show();
</script>
方法二: 使用call
<script>
 var test = {show:function(str){alert(str);}};
 var s = "ffd'd" ;
 var func = eval("test.show");
 func.call(func,s);
</script> 
方法三: 使用转义符
<script>
 var test =
 {show:function(str){alert(str + 'test');}}
 var s = "ffd'd" ;
 eval("test.show('" +s.replace(/\\/g,"\\\\").replace(/'/g,"\\\'") + "')");
</script>
  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    js或jquery获取网页控件的offset值的…
    验证JS中Object和Function的关系的代…
    不支持ASP的空间能用JS吗?
    关于20个Ajax关键问题的疑问及解答
    extjs重新设置按钮button的text的方…
    58项经典的JS代码
    使用JS自动切换背景音乐的方法
    一些常用正则表达式语法参考(数字、…
    JavaScript框架的实用函数
    推荐一些实用JS测试和验证工具给大家
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号