有人知道如何从字符串中删除所有前导零吗?
var str = 000890
字符串的值是时刻变化的,所以我需要它能够在大于0的数字前移除所有的0。因此,在上面的示例中,它需要移除前三个0。因此结果将是890。
有人知道如何从字符串中删除所有前导零吗?
var str = 000890
字符串的值是时刻变化的,所以我需要它能够在大于0的数字前移除所有的0。因此,在上面的示例中,它需要移除前三个0。因此结果将是890。
看起来我们每个人都有自己的做法。我在jsperf.com上创建了一个测试,但结果显示:
String(Number('000890'));
var resultString = str.replace(/^[0]+/g,"");
/^0+/
。 - Rob WparseInt("000890", 10) # => 890
890
而不是字符串"890"
。还要注意,这里需要使用十进制,因为该字符串以零开头。 function replacezeros(text){
var newText = text.replace(/^[0]+/g,"");
return newText;
}
var num = '000123';
num = String(Number(num));
console.log(num);
num = ''+(+num);
。不过,我认为第一种形式更易读。String(Number(num))
以及最快速的解决方案''+(+num)
(请参见JesseB的回答以确认)同时发布,给你一个赞。 - Ben LeeparseInt('00890', 10); // returns 890
// or
Number('00890'); // returns 890
return str.replace(/^0+(.)/, '$1'));
这意味着:将最大数量的前导零替换为任何单个字符(不是零),并用该单个字符替换它。这是必要的,以免吞噬单个“0”。
你可以直接删除引号来实现这个功能。
var str = 000890;
//890
var str = "000890";
//000890
'' + +str
添加第四个测试的人,结果它实际上是最快的竞争者,比第二快的快了约50%,比最慢的快了5倍。 - Ben Lee