我有一些小数点数字。
它们都是10位数的小数点编号,例如String
我想将它们切成0
和non-zero
。
"0.0000001234" => "0.000000", "1234"
"0.0012345678" => "0.00", "12345678"
"0.0000123456" => "0.0000", "123456"
我已经读过slice()
或split()
,但是我的问题是动态的,所以我无法解决。
我如何实现我的目标?
答案 0 :(得分:4)
您可以使用split
(^0+(?:\.0+)?)
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"