javascript regexp - 用四舍五入的数字替换字符串中的所有 float

标签 javascript regex

有点基本的 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/

相关文章:

javascript - 如何找到 json 文件的长度?

javascript - 从子页面 JQuery 检测对父页面中隐藏字段所做的更改

Java从字符串中删除公钥页眉和页脚

javascript - 将重复的对象值转换为数组 Javascript

javascript - 如何设置 MUI 轮廓 TextField 的边框样式?

javascript - 等效于 javascript Selenium Web Driver 中的 jQuery.active

regex - Wordpress - 带有可选参数的自定义重写规则

java - 相对于 java.util.Scanner 中评估的正则表达式?

正则表达式-简单的电话号码

java正则表达式匹配重复数字而不是0,1