我遇到了一個問題:我有一個字串包含一個十進制數字,但使用者可以用兩種方式來表示,這包含使用點或逗號:
0,32
0.32
不同的國家使用不同的方法在數字中分隔整數部分和小數部分。
所以我決定在找到逗號時將字串轉換為使用點。
我使用了一個簡單的正則表達式來做到這一點:
let value = '0,32'
value = value.replace(/,/g, '.')
//value 現在為 '0.32'
您可以使用replace(/\./g, ',')
來進行相反的操作(請注意在正則表達式中點前面的\
,因為它是一個特殊字符)。
正則表達式中的g
標誌確保如果逗號(或點在第二個例子中)有多個實例,它們都會被轉換。
這在我們的使用情境下並不適用,我認為我們需要進行更多驗證來檢查輸入的完整性,但這是一個開始。
在我的情況下,在進行這個替換之後,我調用了parseFloat(value)
來從字符串中得到浮點數,然後使用toFixed(2)
將小數位數限制為2:
value = parseFloat(value).toFixed(2)