有谁知道如何从字符串中删除所有前导零。
var str = 000890
字符串值一直在变化所以我需要它能够在大于0的数字之前删除所有0。所以在上面的例子中它需要删除前三个0。结果将是890
答案 0 :(得分:9)
看起来我们每个人都有自己的方式来做这件事。我在jsperf.com上创建了一个测试,但结果显示
String(Number('000890'));
是最快的(在Google Chrome上)。
根据@ BenLee对Firefox,IE和Chrome的评论,以下是the updated test的数字。
答案 1 :(得分:5)
请参阅:this question
var resultString = str.replace(/^[0]+/g,"");
答案 2 :(得分:4)
var resultString = str.replace(/^[0]+/g,"");
答案 3 :(得分:2)
我认为像这样的功能应该有效
function replacezeros(text){
var newText = text.replace(/^[0]+/g,"");
return newText;
}
答案 4 :(得分:2)
如果需要保留为字符串,请将其强制转换为数字,然后将其强制转换为字符串:
var num = '000123';
num = String(Number(num));
console.log(num);
您也可以使用简写num = ''+(+num);
。虽然,我发现第一种形式更具可读性。
答案 5 :(得分:2)
如果您的问题确实与您定义的一样,那么请使用其他人发布的基于正则表达式的答案之一。
如果问题只是你的字符串中有一个零填充整数并且需要在没有零填充的情况下操纵整数值,你可以将它转换为这样的整数:
parseInt("000890", 10) # => 890
请注意,此处的结果是整数890
而不是字符串"890"
。另请注意,此处需要基数10,因为字符串以零开始。
答案 6 :(得分:2)
parseInt('00890', 10); // returns 890
// or
Number('00890'); // returns 890
答案 7 :(得分:1)
return str.replace(/^0+(.)/, '$1'));
即:用该单个字符替换前导零的最大数量,后跟任何单个字符(不会为零)。这是必要的,以免吞没单个“0”
答案 8 :(得分:-1)
你可以简单地删除引号。
var str = 000890;
//890
var str = "000890";
//000890