用挖空的前导零格式化我的数字

时间:2013-09-01 11:12:01

标签: javascript knockout.js

我想在需要时用前导零格式化我的数字:

示例:

1>> 01

5>> 05

10>> 10

我试过这个:

<td data-bind="text: ProjectId.toString('00')"></td>

ProjectId是包含我的号码的属性。

但它不起作用。我收到错误Number.prototype.toString: invalid argument

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

对于非常简单的情况,这应该是work

<span data-bind="text: ProjectId < 10 ? '0' + ProjectId.toString() : ProjectId"></span>

move this logic代替您的模型:

vm.paddedProjectId = ko.computed(function() {
    return vm.ProjectId < 10 ? '0' + vm.ProjectId.toString() : vm.ProjectId;
});

这对于零以下的数字不起作用,也不会获得零的动态数字(例如,如果你的数字超过100你可能想要“005”等)。它可能还有一些if ProjectId意外值的结果,例如the empty string。对于这些情况,请参阅question mentioned in comments

PS。您正在使用的函数是Number.toString,它需要 radix 参数;我认为它本身很有用,但并不是你想要的。

答案 1 :(得分:0)

如告诉here,使用zeroFill函数添加前导零。

vm.paddedProjectId = ko.computed(function() {
return vm.zeroFill(vm.ProjectId());
});