动态切片小数点数字

时间:2019-10-14 01:19:05

标签: javascript regex split slice

我有一些小数点数字。

它们都是10位数的小数点编号,例如String

我想将它们切成0non-zero

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

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

我如何实现我的目标?

2 个答案:

答案 0 :(得分: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)

找到[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"