首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery在数字前面添加额外的零?

使用jQuery在数字前面添加额外的零?
EN

Stack Overflow用户
提问于 2011-06-24 17:48:38
回答 14查看 157.2K关注 0票数 85

我上传的文件格式是这样的

MR 1

MR 2

MR 100

MR 200

MR 300

等。

我需要做的是在MR10之前添加额外的两个00,并且在MR10-99之前添加额外的0

所以文件是格式化的

MR 001

MR 010

076先生

等。

任何帮助都是最好的!

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-06-24 17:59:58

假设您将这些值存储在一些字符串中,请尝试执行以下操作:

代码语言:javascript
复制
function pad (str, max) {
  str = str.toString();
  return str.length < max ? pad("0" + str, max) : str;
}

pad("3", 3);    // => "003"
pad("123", 3);  // => "123"
pad("1234", 3); // => "1234"

var test = "MR 2";
var parts = test.split(" ");
parts[1] = pad(parts[1], 3);
parts.join(" "); // => "MR 002"
票数 220
EN

Stack Overflow用户

发布于 2012-06-26 23:21:30

我有一个潜在的解决方案,我想这是相关的,我在这里发布了它:

https://www.facebook.com/antimatterstudios/posts/10150752380719364

基本上,你想要的最小长度是2或3,你可以调整你在这段代码中放了多少个0

代码语言:javascript
复制
var d = new Date();
var h = ("0"+d.getHours()).slice(-2);
var m = ("0"+d.getMinutes()).slice(-2);
var s = ("0"+d.getSeconds()).slice(-2);

我知道我总是会得到一个整数作为最小值(因为小时1,小时2)等等,但是如果你不能确定得到的只是一个空字符串,你可以只做"000"+d.getHours()来确保得到最小值。

那你想要3个数字?在我的代码中使用-3而不是-2,我之所以写这个是因为我想以一种非常简单的方式构造一个24小时时钟。

票数 38
EN

Stack Overflow用户

发布于 2016-04-29 15:46:20

注意:如果您使用的是最新的ECMAScript,请参阅更新2 ...

这里有一个我喜欢的来自an answer to a similar question的简单的解决方案

代码语言:javascript
复制
var n = 123

String('00000' + n).slice(-5); // returns 00123
('00000' + n).slice(-5);       // returns 00123

更新

正如@RWC建议的那样,您可以将其很好地封装在一个泛型函数中,如下所示:

代码语言:javascript
复制
function leftPad(value, length) { 
    return ('0'.repeat(length) + value).slice(-length); 
}

leftPad(123, 5); // returns 00123

对于那些不喜欢这个切片的人:

代码语言:javascript
复制
function leftPad(value, length) {
    value = String(value);
    length = length - value.length;
    return ('0'.repeat(length) + value)
}

但如果性能很重要,我建议在选择建议的解决方案之一之前,先通读链接答案。

更新2

在ES6中,string类现在提供了一个内置的padStart方法,可以将前导字符添加到字符串中。在String.prototype.padStart()上供参考的Check MDN here。还有一个用于结束字符的padEnd方法。

所以有了ES6,事情就变得很简单了:

代码语言:javascript
复制
var n = 123;
n.padStart(5, '0'); // returns 00123
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6466135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档