2012-01-05 9 views
0

我拉我的頭髮試圖找到一個解決這個問題..按照Dreamweaver,當我運行它,JavaScript認爲「/」之間的部分是一個正則表達式的定義。我如何解決這個問題就像我想要的那樣劃分?如何讓Javascript中的除法運算符工作?它認爲這是一個正則表達式

var totalPrice = 0; 
    totalPrice = totalPrice + ((bluRayPrice * filmHours()) + ((filmHours()/3 < 1) ? bluRayPrice * copies1 : ((filmHours()/3)*bluRayPrice) * copies1)); 
+0

你的代碼與RegEx有什麼關係? – 2012-01-05 22:36:52

+0

在這裏完美的作品:http://jsfiddle.net/Y7UDY/我認爲你的問題是'根據Dreamweaver'。 – 2012-01-05 22:38:29

+0

沒什麼,這就是問題的全部。 – Chris 2012-01-05 22:39:27

回答

3

Dreamweaver是隻是一個IDE。您應該忽略任何不正確的突出顯示,因爲JavaScript將按預期運行,並在實際使用時進行分割。

這樣的猜測,雖然,你應該把像

filmHours()/ 3

+0

嘗試了一個空格,Dreamweaver仍然對它進行了錯誤的顏色編碼,但它看起來像在瀏覽器中正常運行,我只是認爲這不是因爲我沒有意識到我的公式錯誤。感謝Alan的幫助 – bruchowski 2012-01-05 22:44:19

1

您的代碼工作完全正常它之間的空間:

var totalPrice = 0, bluRayPrice = 10, copies1 = 10; 

function filmHours(){ 
return 3; 
} 

totalPrice = totalPrice + ((bluRayPrice * filmHours()) + ((filmHours()/3 < 1) ? bluRayPrice * copies1 : ((filmHours()/3)*bluRayPrice) * copies1)); 

/*totalPrice = 0 + ((10 * 3) + ((3/3 < 1) ? 10 * 10 : ((3/3)*10) * 10)); */ 

alert(totalPrice); // 130 

我也需要指出的是,我在Dreamweaver上看到了許多突出顯示的錯誤。我強烈建議你使用Notepad++,一旦你使用它,你永遠不會想回到Dreamweaver。

1

像其他人一樣,這應該運行良好。只是,雖然清理了一點:

var film_hours = filmHours(); 
var totalPrice = 0 + ((bluRayPrice * film_hours) + (((film_hours/3) < 1) ? (bluRayPrice * copies1) : ((film_hours1/3) * bluRayPrice) * copies1)); 

我所做的一切在這裏被幹掉他們totalPride初始設置爲零,因爲它是不必要的(在這種情況下,至少),並縮短功能運行到一個變量 - 這樣你就可以處理更少的括號和頭痛。

0

我遇到同樣的問題,並沒有發現不是寫

filmHours()/3 

filmHours()*(Math.pow(3,-1)) 

這樣的顏色編碼是確定的其他任何解決方案。

相關問題