是否可以验证给定文本是否为JavaScript代码?

时间:2016-09-23 13:37:05

标签: javascript java

  • 应该可以使用几行(Java)代码。
  • 文本是从网络服务器收到的,但我不能信任HTTP标头。它必须仅通过内容进行验证。

1 个答案:

答案 0 :(得分:2)

当然! 只需使用JS解析器,例如Esprima(行业中的参考),并执行:

function isIsReallyJSCodeOrWhat(code) {
  try {
    esprima.parse(code);
  } catch (err) {
    return false;
  }

  return true;
}

就这么简单。 JS解析器(esprima,acorn等)都基于Estree规范。试着看看esprima.parse产生的AST。它易于阅读和修改。通过这种方式,您可以检查代码是否执行任何您不想要的操作,它不会引用某些特定变量等。

如果您想快速测试一些代码并查看它产生的AST,请转到http://esprima.org/demo/parse.html