EVAL的JavaScript,检查语法错误

我想知道是否有可能通过JavaScript找到,如果调用的eval()有一个语法错误或不确定的变量,等等......所以可以说我使用eval一些任意JavaScript有没有办法来捕捉错误输出该EVAL的?

--------------解决方案-------------

你可以测试是否有一个错误确实是一个SyntaxError。

try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
}
}

根据Mozilla的文档eval

EVAL返回最后计算的表达式的值。

所以我觉得你可能是出于运气。 同样的文件也建议不要使用eval

的eval()是一个危险的功能,它执行它与呼叫者的权限传递的代码。 如果您运行的eval()与可能是由恶意方受到影响的字符串,你可能最终运行用户计算机上的恶意代码网页/展期的权限。 更重要的是,第三方代码可以看到其中的eval()被调用的范围内,这会导致的方式,其中类似的功能不易可能的攻击。

所以不管,请注意使用此功能前的风险。

您可以使用http://www.jslint.com/包含NI写JavaScript的一个javascript解析器。 它会给你许多关于你的代码信息,它可以配置更加放松与否,等等。

当使用尝试捕捉捕捉特定类型的错误,应该确保其他类型的异常不supressed。 否则,如果评估的代码将抛出一个不同类型的异常可能消失,导致代码意外行为。

我建议书面方式这样的代码:

try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
} else {
throw( e );
}
}

请注意,“其他”一节。

分类:JavaScript的 时间:2012-01-01 人气:0
本文关键词: JavaScript中,EVAL
分享到:

相关文章

  • 我们可以创建一个使用JavaScript中eval方法html标签 2012-07-13

    我发现这是在使用的eval锚标记一些代码 eval("a='http://google.co.in'+window .location.href"); 代码不在它没有重定向到所需的页的同时产生一个错误. 通过观察这一段代码,我想知道是否JavaScript的eval()可以用来创建HTML标签,如eval('script tag')或没有. --------------解决方案------------- eval也只能评估JavaScript代码. 来从一个字符串DOM树,下列方法中的

  • 从代码运行在Javascript中“EVAL”访问变量 2012-12-31

    我知道使用eval是不是建议,我已阅读此链接了. 里面的eval(JavaScript)的设置变量 然而,这就是我想做的事情. 可以说,我们在一个文本框一些代码. 所以,我必须得接受一个文本,然后找出代码所有的全局变量,函数和对象. 我的想法是包装在一个命名空间中的代码,它的eval然后通过命名空间的属性迭代,以获得满意的结果. 然而,即使EVAL运行成功,我无法访问其中定义的变量. 有没有更好的解决方案,或者一些其他的方式来得到这个工作. http://jsfiddle.net/DbrEF/2

  • 如何使用android系统中动态字符串名称(类似于JavaScript来EVAL)访问字符串? 2013-04-13

    我试图访问使用取决于我的画廊是在什么位置动态名字符串变量. 要使用一个固定的名字,我使用的是罚款(字符串称为pic1info)下得到一个字符串的值: String strTest = getResources().getString(R.string.pic1info); 我的串被命名pic1info,pic2info,pic3info等,并欲更换pic1info的静态定义包括位置,以便通过下面的字符串的内容代替pic1info的上方,使得它返回根据当前的位置不同的字符串: String str

  • 有什么和JavaScript中的功能构造无效,EVAL之间的区别,? 2014-05-11

    什么是这些不同的语句中执行代码的处理模式? void(alert('hi')) undefined eval(alert('hi')) undefined Function(alert('hi')) function anonymous() { undefined } eval(Function(function foo(){return true}).toString())(); TypeError: undefined is not a function void(Function(func

  • 在JavaScript中使用动态变量名 2012-01-13

    在PHP中,你可以做这样的惊人/可怕的事情: $a = 1; $b = 2; $c = 3; $name = 'a'; echo $$name; // prints 1 有没有做这样的事情的JavaScript的方法吗? 例如,如果我有一个var name = 'the name of the variable';我可以用名称的变量的引用name ? --------------解决方案------------- 由于ECMA-/ JavaScript是所有关于Objects和Contexts

  • 什么是“使用严格的”做在JavaScript中,什么是它背后的原因? 2012-01-15

    最近,我跑我的一些JavaScript代码通过Crockford的JSLint的,它给了以下错误: 问题1行字符1:缺少"使用严格"语句. 做一些搜索,我意识到有些人添加"use strict";到他们的JavaScript代码. 有一次,我加的说法,错误停止出现. 不幸的是,谷歌并没有透露太多这背后字符串声明的历史. 当然,它必须有事情做有多大的JavaScript是由浏览器解释,但我不知道效果会怎样. 那么,什么是"use strict";一

  • 正则表达式周围添加在JavaScript中的键双引号 2012-04-13

    我使用jQuery的功能的getJSON提出请求并处理JSON响应. 问题是我得到的回复是格式不正确的响应,我不能改变它. 响应看起来是这样的: { aNumber: 200, someText: '\'hello\' world', anObject: { 'foo': 'fooValue', 'bar': '10.0' } } 为了有效的JSON,它应该是这样的: { "aNumber": 200, "someText": "'hello' world

  • 在JavaScript中,为什么[] + []返回空字符串,[] + {}返回的对象,{} + []返回0,{} + {}回报喃? 2012-04-25

    在 ' 屈'谈2012年CodeMash基本上指出使用Ruby和JavaScript的一些奇怪的怪癖. 我已经在http://jsfiddle.net/fe479/9/取得的结果的一个的jsfiddle. (因为我不知道Ruby)的特定的JavaScript行为在下面列出. 我在我的一些成果没有与视频对应的的jsfiddle发现了,我不知道为什么. 我,不过,好奇地想知道JavaScript是如何处理每个案件的幕后工作. Empty Array + Empty Array [] + [] res

  • 使用Javascript的eval()异常 - 行号 2012-05-23

    在JavaScript中我有 ​​一个var str = ".a long string that contains many lines..."若异常引起的eval(str); 我想抓住它,并打印导致异常的行号. (该行内部STR ..) 可能吗? 编辑由于鳄鱼项目(http://github.com/mrohad/Alligator),应用程序服务器对JavaScript的一部分,我从磁盘读取和eval()什么是嵌套到scriplet(即文件<?> ) 我运行此脚本的浏

  • 在JavaScript中,你如何寻找一个数组的字符串匹配 2012-06-01

    我需要寻找在JavaScript的数组. 搜索将是唯一的字符串相匹配的字符串将分配给它addtional号码的一部分. 然后,我需要与完整的字符串返回成功匹配数组元素. IE浏览器. var windowArray = new Array ("item","thing","id-3-text","class"); 我需要寻找与它"ID-"数组元素,我需要拉文本的其余部分中的元素,以及(即"ID-3

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.889 (s). 10 q(s)