gpt4 book ai didi

javascript - 从字符串中删除多余的零

转载 作者:行者123 更新时间:2023-11-30 08:23:01 25 4
gpt4 key购买 nike

我知道从字符串中删除前导零的方法:

'000100'.replace(/^0+/, '')

但是如果像字符串一样的 float (例如 '00100.2300' 或 '00100'),如何从中删除所有多余的零?

'00100.2300' => '100.23'  
'00100' => '100'
'00100.0023' => '100.0023'
'100.00' => '100.' or '100' will better
'-100.002300' => '-100.0023'
'0.50' => '0.5'

假设字符串:

  • 只包含数字或点或负号'-',不包含字符和其他。
  • 小数点没有出现在字符串的最前面。最多一个。
  • 负号'-'会出现在正常位置。并且“-”前后没有额外的零。
  • 字符串表示的 float 可能大于Number.MAX_SAFE_INTEGER
  • 正浮点和负 float 都是可能的。

用于过滤多余零的函数可能相对简单,步骤也更多。

而且正则表达式会更简单。

最佳答案

正则表达式:

^0+(?!\.)|(?:\.|(\..*?))0+$

Live demo

分割:

  • ^0+(?!\.) 匹配不符合小数点的前导零
  • | 或者
  • (?: 非捕获组的开始
    • \.匹配一个小数点
    • | 或者
    • (\..*?) 捕获数字前的小数点
  • ) NCG 结束
  • 0*$ 匹配尾随零

JS代码:

var str = `00100.2300
00100
00100.0023
100.00
100.
00.50
0.5`;

console.log(
str.replace(/^0+(?!\.)|(?:\.|(\..*?))0+$/gm, '$1')
)

关于javascript - 从字符串中删除多余的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com