2015-11-03 65 views
2

我需要採取一些非平凡的JavaScript,並確保所有代碼路徑都有有效的代碼。例如:如何驗證JavaScript代碼在C#中有效

var num = 1; 
if (num == 2) { 
    badFunctionName(); 
} 

我需要從C#中完成此操作。除了驗證它之外,我還需要生成很好的錯誤消息來解釋錯誤代碼的行號和列號。

有關最佳方式的任何想法?

更新 - 通過說javascript的語法糾正了混亂。我的意圖是確保所有執行路徑都有有效的JavaScript代碼(可能由jslint定義)。

+1

您顯示的代碼示例沒有任何語法錯誤。 (一個從不是真的'if'條件和一個未定義的函數不是語法錯誤。) – nnnnnn

+0

@nnnnnn JsLint將其報告爲「Undeclared'badFunctionName'」。我想報告相同的錯誤。話雖如此,我不知道如果JsLint是這樣做的最好方法,如果是這樣,我如何通過c#lint這段代碼?順便說一句,我只寫了代碼作爲示例,以表明我想測試不在執行路徑中的代碼。 –

+0

你不能簡單地在代碼上運行jslint並報告輸出嗎? –

回答

0

我想你會需要利用像Javascript.NETjint編譯JavaScript的東西。

+0

我試過Jint,但沒有收到錯誤。 –

0

你可以添加到Microsoft.JScript程序的引用,並檢查這樣的錯誤:

using (var compiler = new JavaScriptCompiler()) { 
    compiler.Compile(javascriptFiles); 
    if (compiler.HasErrors) 
     /* Do something with the error message */ 
     throw new Exception (string.Format ("Error: {0}", compiler.ErrorMessage)); 
} 
1

使用eslint來驗證你的Javascript。規則是可配置和可插入的。