验证用户输入文本,查看它是否为';这是一个语法正确的javascript函数
我正在实现一个服务,它使用以javascript函数形式编写的领域特定语言(DSL)。我试图通过UI接受规则。规则将是用户在UI的文本区域中输入的字符串。是否有方法验证用户输入的文本是否是前端中的有效javascript函数(使用javascript/jquery等机制) 我目前正在下面的后端执行此操作,并捕获异常以查看是否失败:验证用户输入文本,查看它是否为';这是一个语法正确的javascript函数,javascript,java,jquery,validation,dsl,Javascript,Java,Jquery,Validation,Dsl,我正在实现一个服务,它使用以javascript函数形式编写的领域特定语言(DSL)。我试图通过UI接受规则。规则将是用户在UI的文本区域中输入的字符串。是否有方法验证用户输入的文本是否是前端中的有效javascript函数(使用javascript/jquery等机制) 我目前正在下面的后端执行此操作,并捕获异常以查看是否失败: ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); engine.
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("script.js"));
示例规则:
var rules = function(inputMap) {
// boilerplate
var Attribution = Java.type('com.sunapana.type.Attribution');
var attr = new Attribution("Unknown", "Unknown", "Unknown");
// logic
if (inputMap.shareId != null && inputMap.shareId.length > 0) {
attr = new Attribution("Sharing", inputMap.source, inputMap.shareId);
} else (inputMap.refTag != null && inputMap.refTag.length > 0) {
attr = new Attribution("Marketing", inputMap.source, inputMap.refTag);
}
return attr;
};
提前感谢。javascript还有
eval()
和try…catch
…不确定这是否对年轻人有效避免eval
,这是邪恶的。为什么不通过JavaScript解析器运行它呢?如果它可以构建AST,那么它就是有效的JavaScript。