Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript检查JavaScript语法?_Javascript_Eval_Syntax Checking - Fatal编程技术网

用JavaScript检查JavaScript语法?

用JavaScript检查JavaScript语法?,javascript,eval,syntax-checking,Javascript,Eval,Syntax Checking,像我这样的突击队员怎么能使用一些JavaScript内置方法(如果有的话!)或以任何其他可能的方式检查输入的代码是否是有效的JavaScript源代码!?(类似于NetBeans、Eclipse等各种IDE中的preparser) 我必须检查代码是否正常,然后window.eval()-将其添加到当前文档实例 非常感谢,来自世界各地的JavaScript突击队。您可以使用lint库,如: 编辑: 抱歉,这是一个编译过的linter,你需要一些即时的东西。试试jslint:你在找Crockfor

像我这样的突击队员怎么能使用一些JavaScript内置方法(如果有的话!)或以任何其他可能的方式检查输入的代码是否是有效的JavaScript源代码!?(类似于NetBeans、Eclipse等各种IDE中的preparser)

我必须检查代码是否正常,然后window.eval()-将其添加到当前文档实例


非常感谢,来自世界各地的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”是什么意思?代码是否应该具有正确的语法,或者应该遵循编码标准,或者不应该包含恶意代码?