有点基本的 javascript/regexp,但我现在无法将它们组合在一起。
我有一个带 float 的字符串
"m 135.969098800748,207.1229911216347 c -0.7762491582645,-0.2341987326806 -1.1870973239185,-1.1248369132174 -1.6826107603382,-1.6767899650268 z"
我想用四舍五入的数字替换所有 float (Math.round)
"m 136,207 c -1,0 1,-1 -2,-2 z"
怎么做?
谢谢
最佳答案
使用 .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"
我上面的代码给出了正确的结果。
关于javascript regexp - 用四舍五入的数字替换字符串中的所有 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877500/