Search code examples
asp.net-coreasp.net-core-mvcasp.net-core-webapiasp.net-core-2.1

How to Evaluate JavaScript code from .NetCore


I need to evaluate Javascript code from .netcore 2.1 project

    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"
            });

Solution

  • You can use Jint. Jint implements the ECMA 5.1 spec and can be use from any .NET implementation (Xamarin, .NET Framework, .NET Core). Just use the NuGet package and has no dependencies to other stuff - it’s a single .dll and you are done! Just transform your javascript code into a function and run it like this (this is just an example, not your implementation):

      var engine = new Engine()
        .Execute("function MyFunction(a, b) { return a + b; }")
        ;
    
    engine.Invoke("MyFunction", 1, 2); // -> 3
    

    You have more explanations and examples on https://github.com/sebastienros/jint