【问题标题】:JS remove leading zerosJS 去掉前导零
【发布时间】:2015-03-19 01:17:19
【问题描述】:

在 JavaScript 中,我想删除小数位和后面的零。

比如我原来的号码:“0.00558”,我想留下“558”。

这可能吗? (如果有这个方法,我也在使用 AngularJS)。

【问题讨论】:

标签: javascript html angularjs math


【解决方案1】:

您可以通过简单的正则表达式替换来做到这一点。

var number = "0.00558";
number = number.replace(/^[0\.]+/, "");
console.log(number);//number is now "558"

【讨论】:

    【解决方案2】:

    去掉小数点:

    el.value.replace(/[^\d]/g,'');
    

    el.value.replace(/\./g,'');
    

    然后得到整数值:

    var el.value = parseInt(el.value);
    

    虽然我一直使用默认基数为 10,但 @aduch 提出了一个很好的观点。 MDN 对此表示赞同。

    更安全的方法是:

    var el.value = parseInt(el.value,10);
    

    来自 MDN: 如果输入字符串以“0x”或“0X”开头,则基数为 16(十六进制)并解析字符串的其余部分。 如果输入字符串以“0”开头,则基数为 8(八进制)或 10(十进制)。确切选择哪个基数取决于实现。 ECMAScript 5 指定使用 10(十进制),但并非所有浏览器都支持这一点。因此,在使用 parseInt 时始终指定一个基数。 如果输入字符串以任何其他值开头,则基数为 10(十进制)。

    【讨论】:

    • parseInt 应该指定一个基数(即 10)
    • @aduch 是的,我这是最好的做法,但它也可以在没有基数的情况下工作。我认为如果您不放弃基数,它默认为 10。
    • @aduch 你是对的。编辑帖子以反映您的评论。
    猜你喜欢
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多