用JavaScript检查JavaScript语法?
像我这样的突击队员怎么能使用一些JavaScript内置方法(如果有的话!)或以任何其他可能的方式检查输入的代码是否是有效的JavaScript源代码!?(类似于NetBeans、Eclipse等各种IDE中的preparser) 我必须检查代码是否正常,然后window.eval()-将其添加到当前文档实例用JavaScript检查JavaScript语法?,javascript,eval,syntax-checking,Javascript,Eval,Syntax Checking,像我这样的突击队员怎么能使用一些JavaScript内置方法(如果有的话!)或以任何其他可能的方式检查输入的代码是否是有效的JavaScript源代码!?(类似于NetBeans、Eclipse等各种IDE中的preparser) 我必须检查代码是否正常,然后window.eval()-将其添加到当前文档实例 非常感谢,来自世界各地的JavaScript突击队。您可以使用lint库,如: 编辑: 抱歉,这是一个编译过的linter,你需要一些即时的东西。试试jslint:你在找Crockfor
非常感谢,来自世界各地的JavaScript突击队。您可以使用lint库,如: 编辑:
抱歉,这是一个编译过的linter,你需要一些即时的东西。试试jslint:你在找Crockford的。它与所支持的代码相同。假设您需要检查代码是否不会抛出任何语法错误,下面是我的解决方案:
var code = "asdfsd = 1";
try {
(function(){
new Function(code);
})()
}
catch(e) {
alert('error');
}
工作示例:如何在当前脚本中包含jslint?啊,对不起。我误解了。你想用javascript即时完成这项工作,对吧?你链接的库不是用javascript编写的。
newfunction(string)
是eval
伪装的。它们有不同之处。例如,newfunction(str)
不会影响作用域中的变量。此外,据我所知,他的需要是检查代码是否有效,而不是是否遵循了编码实践。在OP中:“我必须检查代码是否正常,然后再查看window.eval()-it”。请注意,建议解决方案中的catch
仅在运行时出错的情况下才会触发(例如变量asdfsd
未定义)。但该代码在语法上仍然有效。asdfsd=1
(注意1之间的空格)不会被捕获。您所说的“OK”是什么意思?代码是否应该具有正确的语法,或者应该遵循编码标准,或者不应该包含恶意代码?