我有一个格式如下的字符串:
a 582 320 b 15.33 320 15.33 c 148.66 320 148.66
我需要所有数字都是整数,如下所示:
a 582 320 b 15 320 15 c 149 320 149
我正在考虑在空格上分割字符串,parseFloat()
然后Math.Round()
并在每个元素上添加try
,然后再次重新构建字符串。
有更好/更简单的方法吗?
答案 0 :(得分:0)
甚至可能是一个(长)单行: - )
yourstring = yourstring.split(" ").map(function(el) {var p=parseFloat(el);return isNaN(p)?el:Math.round(p)}).join(" ")
答案 1 :(得分:0)
您可以使用正则表达式和回调进行舍入。
.navbar-fixed-top {
position: fixed;
width: calc(100vw - 260px);
left:260px;
z-index: 1030;
}
<div class="wrapper">
<div class="sidebar">
..menuitems..
</div>
<div class="main-panel">
<nav class="navbar navbar-default navbar-fixed-top">
</nav>
<div class="content">
<div class="container-fluid">
<div class="row">
...content...
</div>
</div>
</div>
</div>
</div>
答案 2 :(得分:0)
function roundNumbersInString(str) {
return str.replace(/\w\S*/g, function (txt) {
return (/^[0-9.]+$/.test(txt)) ? Math.round(txt) : txt;
});
}
console.log(roundNumbersInString("a 582 320 b 15.33 320 15.33 c 148.66 320 148.66"));
//“a 582 320 b 15 320 15 c 149 320 149”
答案 3 :(得分:0)
我就是这样做的。
var str = "a 582 320 b 15.33 320 15.33 c 148.66 320 148.66",
rndStr = str.split(" ").map(e => Math.round(+e) || e).join(" ");
console.log(rndStr);