2014-05-06 59 views
-1

我不明白在變量被分配一個數字後我是如何繼續以「null」結尾的。變量重置爲默認選項,爲什麼?

function evalKayScript(syn){ 
    coms = extract(syn,"{...}"); 
    document.write(JSON.stringify(coms));//debug 
    for(x in coms){ 
     ops = extract(coms[x],"(...)"); 
     com = null; //<-- ***com preset null*** 
     for(y in funNames){ 
      if(ops[1] == funNames[y]){ 
       com = y; //<-- ***com changed to "y"*** 
      } 
     } 
     alert(com); <-- alerts given below (first two alerts) 
     if(com == null){ 
      alert("Command ((("+ops[1]+"))) Not Registered!"); 
      return null; 
     } 
     exe = funValues[y]; 
     inputs = execVars(ops[2]); 
     inputs = extract(inputs,"[...]"); 
     for(y in inputs){ 
      exe.replace(new RegExp("/\(\%"+y+"\%\)/gim"),inputs[y]); 
     } 
     exe.replace(new RegExp("/\(\%name\%\)/gim"),ops[0]).replace(new RegExp("/\(\%function\%\)/gim"),ops[1]); 
     exea = exe; 
     if(exe.replace(new RegExp("/\:\:\:javascript/gim"),"")! = exes){ //<-- new invalid ":" error 
      eval(exe); 
     }else{ 
      evalKayScript(exe); 
     } 
    } 
} 

我不明白爲什麼,變「COM」變爲一個數字,然後回空... 我已經安裝了一些錯誤,我自己的形式捕捉,我結束了與這些警報:

http://jstone88.bugs3.com/kayscript/file1.html
0 //<-- var com 
null //<-- ***var com? this makes no sense, how does it go back to null?*** 
Command ((("(%name%) already exists!"))) Not Registered! //<--caused by if(com == null) This is normal. 

直播腳本,並在http://jstone88.bugs3.com/kayscript/kayscript.js

+0

它看起來像有隻是沒有匹配'funNames [Y]'通過循環的第二次。 –

+0

'com = null;'在每次迭代*中將'com'設置爲'null' *。你的問題並不清楚。 –

+0

?但是這沒有任何意義,只有一個在funNames預置功能,肯定是有一些缺少我沒有看到,和@Felix王,它只是應該經過一次,因爲我進入,'{(輸出)(自定義)([document.write(\「(%0%)\」);] [::: javascript])}。和'com = null;'在賦予它一個新值的循環之前設置。 – ModerateJavaScriptDev

回答

1

您沒有使用RegExp構造,因爲它本來應該使用JS文件。

它是這樣的:

new RegExp("pattern without/at the beginning an end","flags"); 

/pattern/flags是寫在JS正則表達式的文字形式,但它是在正則表達式的構造不同。

+0

謝謝正則表達式是錯誤的,我最初的劇本,不是我有常見的問題,造成我用正則表達式,它說是無效的「:」。 – ModerateJavaScriptDev

+0

你原來的正則表達式是什麼? –

+0

'/ \:\:\:的JavaScript/gim' @Amit條既納 – ModerateJavaScriptDev