如何从.NetCore评估JavaScript代码

问题描述

我需要评估.netcore 2.1项目中的Javascript代码

    string vRule = "var input = arguments[0]; if (!input) return \"\"; if(input.length != 7) return \"a fixed string length of 7 is required\"; else return \"\"";
    string spResponse = "sdfsd23";

    string errorText =
        _jscriptEval.EvalToString(new List<object>
            {
                "var args = new Array('" + spResponse +
                "');\r\n validateRule(args);\r\n function validateRule(arguments){" + vRule +
                "}\r\n"
            });

解决方法

您可以使用Jint。 Jint实现了ECMA 5.1规范,可以在任何.NET实现(Xamarin,.NET Framework,.NET Core)中使用。只需使用NuGet程序包,并且不依赖于其他任何东西-它是一个.dll,那么您就完成了! 只需将您的javascript代码转换为一个函数并像这样运行它(这只是一个示例,而不是您的实现):

  var engine = new Engine()
    .Execute("function MyFunction(a,b) { return a + b; }")
    ;

engine.Invoke("MyFunction",1,2); // -> 3

您在https://github.com/sebastienros/jint

上有更多说明和示例。