我收到一个整数,例如 3,我想显示一个字符串,例如“0000003”(六个“0”和“3”)。或接收1050并显示“0001050”(三个“0”和数字)。
因此,我想要的是显示一个 7 位整数来添加一个数字,显示剩余的 0。
var numero = 3;
var cadenaNumerica = 0000000;
var resultado = numero + cadenaNumerica;
//Lo que necesito que devuelva resultado 0000003
我收到一个整数,例如 3,我想显示一个字符串,例如“0000003”(六个“0”和“3”)。或接收1050并显示“0001050”(三个“0”和数字)。
因此,我想要的是显示一个 7 位整数来添加一个数字,显示剩余的 0。
var numero = 3;
var cadenaNumerica = 0000000;
var resultado = numero + cadenaNumerica;
//Lo que necesito que devuelva resultado 0000003
ECMA Script 2017 最终包含了一个功能:
padStart()
语法是:
在哪里:
tamaño
是结果字符串的大小。cadena_con_la_que_hacer_padding
默认为“”(空格)。所以你会做这样的事情:
Javascript 没有完成这项工作的功能(如
sprintf
C 语言)。相反,您需要在开头添加零(作为字符串)并在末尾添加数字。最后,您只保留结果的正确部分(如果它们是整数)。
这是一个例子:
感谢@fedorqui 的回答,我知道 ECMA Script 2017 提案
String.prototype.padStart
.问题是目前它仅受某些浏览器的最新版本支持,所以我想到您可以检查实现的存在,如果它不可用,请创建一个模拟其基本行为的“轻量级”版本:
PS:我不使用参考实现,因为
String.prototype.repeat
它也不是所有浏览器都支持它。使用对数和正则表达式将数字填充到右侧,它们立即向左移动并删除该点。
首先将剩余的零填入右侧,即从数字的以 10 为底的对数中减去的位数。
然后用正则表达式将它分成两部分,右边的零的数量和数量,并改变顺序。
另一种更简单的方法是在数字上加上 10 的位数,然后将其转换为字符串并删除第一个字符。
例子: