通过javascript/jquery删除/截断前导零

Som*_*luk 66 javascript jquery numbers zero

建议通过javascript,jquery从数字(任何字符串)中删除或截断前导零的解决方案.

Guf*_*ffa 158

您可以在字符串的开头使用与零匹配的正则表达式:

s = s.replace(/^0+/, '');
Run Code Online (Sandbox Code Playgroud)

  • @SomnathMuluk:这对很多javascript程序员来说都是一个惊喜! (10认同)
  • 为什么选择downvote?如果你不解释你认为错误的东西,它就无法改善答案. (5认同)
  • @Somnath,jQuery是javascript.如果某些东西在javascript中工作,那么如果你碰巧也在使用jQuery,它将继续工作. (2认同)
  • s = s.replace(/ ^ 0 + /,'')将"00"转换为""(空字符串而不是带有一个零的字符串),这在大多数情况下是不合需要的,更好地将其封装在一个函数中添加行:if(s =="")s ="0"; (2认同)

Cha*_*mel 26

我会使用Number()函数:

var str = "00001";
str = Number(str).toString();
Run Code Online (Sandbox Code Playgroud)

  • 它不适用于大于2 ^ 53的值.编号("009007199254740993").toString()将为"9007199254740992" (2认同)

Die*_*oDD 12

也许有点晚了,但我想加2美分.

如果你的字符串ALWAYS代表一个数字,可能有前导零,你可以使用'+'运算符简单地将字符串转换为数字.

例如

x= "00005";
alert(typeof x); //"string"
alert(x);// "00005"

x = +x ; //or x= +"00005"; //do NOT confuse with x+=x, which will only concatenate the value
alert(typeof x); //number , voila!
alert(x); // 5 (as number)
Run Code Online (Sandbox Code Playgroud)

如果你的字符串不代表一个数字而你只需要删除0就使用其他解决方案,但如果你只需要它们作为数字,这是最短的方法.

如果你将一个空字符串连接到它们,强制数字作为字符串,就像:FYI你可以做相反的事情,例如:

x = 5;
alert(typeof x); //number
x = x+"";
alert(typeof x); //string
Run Code Online (Sandbox Code Playgroud)

希望它能帮到某个人


Joh*_*her 11

既然你说"任何字符串",我假设这是你想要处理的字符串.

"00012  34 0000432    0035"
Run Code Online (Sandbox Code Playgroud)

所以,正则表达式是要走的路:

var trimmed = s.replace(/\b0+/g, "");
Run Code Online (Sandbox Code Playgroud)

这样可以防止丢失"000000"值.

var trimmed = s.replace(/\b(0(?!\b))+/g, "")
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到一个有效的例子


小智 5

parseInt(value) or parseFloat(value)
Run Code Online (Sandbox Code Playgroud)

这将很好地工作。