2012-12-04 56 views
2

我確定有人問過這個,但是我的Google foo讓我失望,我無法找到它。 當我像這樣的公式在分裂不止一次:防止在我的javascript中的正則表達式格式化

this.active[i].pos(last.pos()+(last.width()/2)+10+(this.active[i].width()/2)); 

/2)+10+(this.active[i].width()/」將拿出正則表達式格式(所有的橙色)在編輯器,這是讓我瘋了。(

有沒有辦法我可以改變我的設置,

任何人都可以提供或指向我的答案嗎?

如果您在Google上找到它,我希望瞭解您的搜索字詞。

謝謝。 :)

+0

確實parseInt解決了嗎? –

+0

我希望能夠讓Aptanas編輯器正確執行,而不必對其進行編碼。 – Grallen

回答

3

我一直在網上搜索大約45分鐘,試圖找到解決這個問題時,當我遇到這個問題在這裏堆棧溢出。我幾乎開始了一個賞金,但決定我會看看我是否可以自己搞清楚。

我想出了兩種可能的解決方案,這兩種解決方案比我想象的要簡單得多。

解決方案1:將公式分成兩部分,可以存儲在變量中並在需要時添加到一起。例如,正好在寫一個公式的表面積計算,從而形成了正則表達式和返回的不正確的答案:

返回[(this.base * this.height)/ 2] + [(this.perimeter * this.slant)/ 2];

我在+拆分公式,並將它們存儲在變量:

var a = (this.base * this.height)/2; 
    var b = (this.perimeter * this.slant)/2;  
    return a + b 

該解決方案的工作就好了。但後來我開始認爲必須有一個更簡單的解決方案,我總結了一下,這導致我:

解決方案2:除以2就等於乘以0.5(duh!)。就我而言 - 幾乎在任何情況下 - 除以2並乘以0.5都會得到相同的答案。我的代碼然後看起來像這樣:

返回[(this.base * this.height)* 0.5] + [(this.perimeter * this.slant)* 0.5];

我測試了兩者,兩者都工作,但顯然解決方案2更有效(代碼少)。

我可以想象需要使用解決方案1的唯一時間是如果你除以一個很長的數字或素數(除以3給出一個更準確的結果比乘以0.33)。

無論如何,我知道你在幾個月前發佈了這個問題,可能要麼提出了一個解決方案或繼續前進,但我想我會張貼這個答案無論如何作爲任何未來相同的想法問題的參考。

(此外,這是在JavaScript中,但我無法想象這種簡單的東西是任何不同的類似的語言)。