2013-11-09 23 views
2

基本javascript /正則表達式的種類,但我現在不能將它組合在一起。javascript正則表達式 - 用四捨五入的數字替換字符串中的所有浮點數

我有一個浮點數

"m 135.969098800748,207.1229911216347 c -0.7762491582645,-0.2341987326806 -1.1870973239185,-1.1248369132174 -1.6826107603382,-1.6767899650268 z" 

一個字符串,我想圓數(Math.round)

"m 136,207 c -1,0 1,-1 -2,-2 z" 

全部更換浮點數如何做到這一點?

謝謝

回答

4

使用.replace和一個回調。

var str = "m 135.969098800748,207.1229911216347 c -0.7762491582645,-0.2341987326806 -1.1870973239185,-1.1248369132174 -1.6826107603382,-1.6767899650268 z"; 
str.replace(/-?\d+\.\d+/g, function(x) { 
    return Math.round(parseFloat(x)); 
}) 

=> "m 136,207 c -1,0 -1,-1 -2,-2 z" 

順便說一下,有一個在你的預期結果的錯字,你錯過了一個-

"m 136,207 c -1,0 1,-1 -2,-2 z" 

應該

"m 136,207 c -1,0 -1,-1 -2,-2 z" 

和我上面的代碼給出正確的結果。