使用Java Nashorn引擎仅验证javascript

法比奥K

早上好。

我需要通过Java运行javascript语法验证,但我一直在努力寻找最佳解决方案。

我使用以下方法对Nashorn进行了一些测试:

try
{
    ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
    Object retVal = engine.eval("findFieldValue(field);");
}
catch (ScriptException e)
{
    response.put("status", "parseexception");
    response.put("msg", e.getMessage());
}

Nashorn引发异常,指出findFieldValuefield均未定义,这是正确的。我不需要这种验证。我需要做的就是验证语法,就像Esprima JS API所做的一样

http://esprima.org/demo/validate.html

我的问题是。我可以忽略Nashorn的语义验证,仅验证语法吗?

谢谢!

吉姆·加里森

eval()可能会猜到,您正在使用哪种方法尝试表达式求值

NashornScriptEngine器具javax.script.Compilable,从而它提供了一种compile()方法。要使用它,您必须转换engineNashornScriptEngine,如

NashornScriptEngine engine = (NashornScriptEngine) new ScriptEngineManager().getEngineByName("nashorn");

ScriptException如果编译失败,您将得到一个提示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何开始使用Oracle的Nashorn JS引擎进行编码,何时在OpenJDK中取代Rhino?

寻找可在Java和JavaScript中使用的模板引擎

使用Java验证XSD

使用Nashorn在Java中使用导出功能运行Javascript代码

在Java中使用Nashorn?

为Nashorn脚本引擎定义默认/全局Java对象?

如何使用jjs参数启动Java nashorn

使用Nashorn JavaScript Engine(Java 8)访问ScriptContext的变量

如何使用Nashorn在Java8中执行JavaScript文件

如何使用Nashorn将Javascript对象从Java传递到Javascript

仅使用javascript动态验证表单

仅使用JavaScript的小型项目的验证码

使用Java验证密码

使用JavaScript进行表单验证,仅其中一项输入有效

Java 7应用程序错误,因为尝试使用新的Java 8 Javascript引擎Nashorn

Javascript验证,仅允许使用Alpha字符,连字符(-),点(。),撇号(')和空格

如何从Nashorn引擎中删除Java API?

使用Java验证输入

是否可以使用Nashorn将Java代码转换为Javascript?

使用Nashorn javascript jjs查找JMX MBean

仅使用Required属性验证字段,同时使用javascript验证字段?

使用Java验证表单

将命令行开关传递给Nashorn JavaScript引擎

Nashorn使用CompiledScript进行Java脚本调试?

JDK 8 Nashorn Javascript 引擎限制

仅使用 Javascript 验证域名字符串 .com 和 .net 允许

仅使用 javascript 的文本框日期验证

使用 Nashorn 从 Java 中的 JavaScript 代码返回输出值

仅当输入有效时,如何使用 javascript 验证在表单中显示 CSS 动画