动态切片小数点位数

问题描述 投票:0回答:2

我有一些小数点数字。

它们都是10位小数点数字,都作为String

我想将它们切成0non-zero

"0.0000001234" => "0.000000", "1234" 
"0.0012345678" => "0.00", "12345678"
"0.0000123456" => "0.0000", "123456"

我已经读过slice()split(),但是我的问题是动态的,所以我无法解决。

我如何实现我的目标?

javascript regex split slice
2个回答
4
投票

您可以使用split

 (^0+(?:\.0+)?)

enter image description here

let slicer = (str) =>{
  return str.split(/(^0+(?:\.0+)?)/).filter(Boolean)
}

console.log(slicer("0.0000001234"))
console.log(slicer("0.0012345678"))
console.log(slicer("0.0000123456"))
console.log(slicer("0.1000123456"))
console.log(slicer("1.1000123456"))

1
投票

当找到[1-9]时,我将使用正则表达式进行拆分,并捕获字符串的其余部分:

const parse = str => {
  const [zeros, digits] = str.split(/([1-9].*)/);
  console.log(zeros, digits);
};

parse("0.0000001234") // => "0.000000", "1234" 
parse("0.0012345678") // => "0.00", "12345678"
parse("0.0000123456") // => "0.0000", "123456"
© www.soinside.com 2019 - 2024. All rights reserved.