gpt4 book ai didi

java - 使用 Java Nashorn 引擎仅验证 javascript

转载 作者:行者123 更新时间:2023-12-01 19:50:02 26 4
gpt4 key购买 nike

早上好。

我需要通过 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如果编译失败。

关于java - 使用 Java Nashorn 引擎仅验证 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com