2014-04-29 38 views
0

我有一個JavaScript字符串中的「金額」在美分,我想通過插入一個「。」更改爲$。在最後兩個字符之前。我看起來像:插入「。」在JavaScript字符串與str.replace()

amount.replace(/(..$)/,\.$1); 

應該這樣做,但它沒有。

有沒有人看到這個問題?

謝謝

+1

'.'是一個正則表達元字符。你需要在模式中逃避它。 – devnull

+1

'+ yourString/100' ... –

回答

1

您的替換應該是一個字符串。它需要用引號括起來:

amount.replace(/(..$)/,"\.$1"); 

你可以讓它多了幾分穩健的通過更換..這將匹配任何\d{2}將匹配2個位數。

但是,如果您輸入的只是數字,將其轉換爲數字並將其除以100會更容易。

+0

謝謝。我將繼續使用正則表達式,因爲它將所有內容都保存在字符串中。這似乎比轉換成數字除以10並轉換回字符串更容易。 – Steve

1

試試這個:

var dollars = parseInt(yourString, 10)/100; 

我看不出有什麼不妥這個,你在這裏使用正則表達式?

+0

除非有一些領先的非數字字符,否則我同意在簡單的數學運算就足夠的情況下使用正則表達式很愚蠢。 –

+0

@MattBurland是的,那麼我認爲OP應該做字符串操作來刪除那些非數字字符,然後除以100,如我所示。我真的不認爲使用正則表達式來添加小數在這裏很好。 IMO。這取決於OP .. –