根據總結,大概分為以下三種: 第一種: 用DataTable中的Compute方法。 例如:" 1*2*3 " 代碼如下: 第二種:利用javascript中的Eval方法解析.此方法需引入添加COM引用:Microsoft Sctipt Control 1.0 在使用過程中,若出現無法嵌入互操作類 ...
根據總結,大概分為以下三種:
第一種: 用DataTable中的Compute方法。
例如:" 1*2*3 "
代碼如下:
var a = new System.Data.DataTable().Compute("1*2*3", ""); //結果a=>6
第二種:利用javascript中的Eval方法解析.此方法需引入添加COM引用:Microsoft Sctipt Control 1.0
在使用過程中,若出現無法嵌入互操作類型“MSScriptControl.ScriptControlClass”,則可以這樣操作。右擊MSScriptControl程式集--〉屬性--〉嵌入互操作類型--〉改為false
讓我們看下這個方法的強大之處:
例如:"1*2*3"
此方法還能解析像這種等字元串 :“if(3>2){ 1 }else { 2}”
代碼如下:
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass(); sc.Language = "javascript"; var b = sc.Eval("1*2*3"); //結果b=>6
第三種: 引入添加.net 引用 Microsoft.JScript 和Microsoft.Vsa
個人認為此方法跟方法二是一樣的,具體區別不清楚
例如:"1*2*3"
此方法還能解析像這種等字元串 :“if(3>2){ 1 }else { 2}”,跟方法二一樣。
代碼如下:
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine(); var c = Microsoft.JScript.Eval.JScriptEvaluate("1*2*3", ve); //結果c=>6
總結,項目中難免會出現類似這種情況,我個人認為,如果只是簡單的計算,第一種無疑是最方便的,若是有邏輯的字元串需要解析,就用第二種或者是第三種。
個人喜歡。
本文到此結束。謝謝觀賞。