输入字段值 - 删除前导零

IT技术 javascript leading-zero
2021-02-02 02:35:15

我有一个 Javascript 文本框。当我'0000.00'在文本框中输入时,我想知道如何将其转换为只有一个前导零,例如'0.00'.

6个回答

更简化的解决方案如下。看一下这个!

var resultString = document.getElementById("theTextBoxInQuestion")
                           .value
                           .replace(/^[0]+/g,"");
@MikeM,然后你可以使用 replace(/^[0]+/g, "0")
2021-04-04 02:35:15
str.replace(/^0+(?!\.|$)/, '')

  '0000.00' --> '0.00'   
     '0.00' --> '0.00'   
  '00123.0' --> '123.0'   
        '0' --> '0'  
真的很棒的解决方案,我正在寻找
2021-03-15 02:35:15
@MikeM 有人可以详细说明吗?根据我对正则表达式的理解以及从 regexr.com/4tn79 开始,使用的正则表达式与第三个示例中的零不匹配,但该函数确实适用于所有示例(使用 Chrome)。那么如果正则表达式不正确匹配,第三个示例如何工作?!我怎么能确定它总是有效?
2021-03-23 02:35:15
var value= document.getElementById("theTextBoxInQuestion").value;
var number= parseFloat(value).toFixed(2);
Eric 说得对,它只有在您有一个前导零时才有效。再多一点就会失败。
2021-04-08 02:35:15
如果小数点左边的零数量非常大,这是否会导致任何问题?
2021-04-14 02:35:15

听起来你只想删除前导零,除非只剩下一个(“0”代表整数或“0.xxx”代表浮点数,其中 x 可以是任何东西)。

这对于第一次切割应该有好处:

while (s.charAt(0) == '0') {            # Assume we remove all leading zeros
    if (s.length == 1) { break };       # But not final one.
    if (s.charAt(1) == '.') { break };  # Nor one followed by '.'
    s = s.substr(1, s.length-1)
}
这是一个很好的解决方案。依赖内置函数并不总是最好的选择。我会把它变成一个辅助函数,它接受一个字符串参数并返回格式化的字符串。
2021-04-08 02:35:15
对我来说效果很好。我只是建议添加一段代码来支持负数(第一个字符为“-”)。
2021-04-12 02:35:15

好的一个简单的解决方案。唯一的问题是当字符串是“0000.00”时,结果是纯 0。但除此之外,我认为这是一个很酷的解决方案。

var i = "0000.12";
var integer = i*1; //here's is the trick...
console.log(i); //0000.12
console.log(integer);//0.12

在某些情况下,我认为这可以工作......