javascript regexp - 用带圆角的数字替换字符串中的所有浮点数

时间:2013-11-09 15:14:09

标签: javascript regex

基本的javascript / regexp,但我现在无法将它们整合在一起。

我有一个浮点数字符串

"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"

怎么做?

感谢

1 个答案:

答案 0 :(得分:5)

使用.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"

我上面的代码给出了正确的结果。