JS ES6 模板文字和 leading/suffix 零到数字
JS ES6 template literals and leading/suffix zeros to number
在 Python 中,可以在构建这样的字符串时向数字附加前导零
print "%02d" % (1)
//>> "01"
是否可以对 ES6 模板文字执行相同的操作?
(如果,是否也可以用空格代替零来做同样的事情:“1”?)
您可以使用字符串函数 padStart
,方法是使用 toString()
将数字转换为字符串,然后使用 padStart
填充,其中第一个参数是长度,第二个是要填充的内容用.
填充
let n = 1;
n.toString().padStart(2, "0")
//=>"01"
如果您的数字只能介于 0 和 99 之间,那么试试这个:
for (let n = 0; n < 10; n++) {
console.log(n.toString().padStart(2, "0"));
}
如果你想使用 spaces 那么试试这个:
for (let n = 0; n < 10; n++) {
console.log(n.toString().padStart(2, " "));
}
如果您不想使用 padStart
那么试试这个:
for (let n = 0; n < 100; n+=5) {
console.log(('0'+n.toString()).slice(-2));
}
甚至这样:
for (let n = 0; n < 100; n+=5) {
console.log(`0${n}`.slice(-2));
}
最后一个使用 ES6 文字,但仍然使用 slice
仅获取最后 2 个字符。
要在最后两个上使用 space,只需将 0
更改为 `space。
String.padStart
仅适用于较新的浏览器版本。所以你可能需要一个 polyfill。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
您可以尝试将最大宽度作为固定字符串添加到该值之前,然后将结果字符串切成一定大小。
示例:假设您希望用句点填充您的数字,最大宽度为 6
console.log((`......${123}`).slice(-6)); // ...123
console.log((`......${12345}`).slice(-6)) // .12345
const v = 99;
console.log((`......${v}`).slice(-6)) // ....99
一种紧凑的方式,避免使用 toString()。
let n = 3;
n = ("0"+n).substr(-2); // n === "03"
-2 是所需长度乘以 -1。将“0”更改为要填充的最大字符数。
对于 %03d:
let n = 3;
n = ("00"+n).substr(-3); // n === "003"
在 Python 中,可以在构建这样的字符串时向数字附加前导零
print "%02d" % (1)
//>> "01"
是否可以对 ES6 模板文字执行相同的操作?
(如果,是否也可以用空格代替零来做同样的事情:“1”?)
您可以使用字符串函数 padStart
,方法是使用 toString()
将数字转换为字符串,然后使用 padStart
填充,其中第一个参数是长度,第二个是要填充的内容用.
let n = 1;
n.toString().padStart(2, "0")
//=>"01"
如果您的数字只能介于 0 和 99 之间,那么试试这个:
for (let n = 0; n < 10; n++) {
console.log(n.toString().padStart(2, "0"));
}
如果你想使用 spaces 那么试试这个:
for (let n = 0; n < 10; n++) {
console.log(n.toString().padStart(2, " "));
}
如果您不想使用 padStart
那么试试这个:
for (let n = 0; n < 100; n+=5) {
console.log(('0'+n.toString()).slice(-2));
}
甚至这样:
for (let n = 0; n < 100; n+=5) {
console.log(`0${n}`.slice(-2));
}
最后一个使用 ES6 文字,但仍然使用 slice
仅获取最后 2 个字符。
要在最后两个上使用 space,只需将 0
更改为 `space。
String.padStart
仅适用于较新的浏览器版本。所以你可能需要一个 polyfill。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
您可以尝试将最大宽度作为固定字符串添加到该值之前,然后将结果字符串切成一定大小。
示例:假设您希望用句点填充您的数字,最大宽度为 6
console.log((`......${123}`).slice(-6)); // ...123
console.log((`......${12345}`).slice(-6)) // .12345
const v = 99;
console.log((`......${v}`).slice(-6)) // ....99
一种紧凑的方式,避免使用 toString()。
let n = 3;
n = ("0"+n).substr(-2); // n === "03"
-2 是所需长度乘以 -1。将“0”更改为要填充的最大字符数。 对于 %03d:
let n = 3;
n = ("00"+n).substr(-3); // n === "003"