数字格式化,删除千位分隔符
Number formatting, remove thousands separator
我希望格式化一个数字,使其具有 "leading zeros"(因此字符串的长度始终相等)。 - 虽然我可以作为备份手动执行此操作,但我希望使用最佳选项。 - 由于标准格式语法(如 pythons "{0:4d}".format(number)
)似乎不可用,下一个最好的方法是使用国际化库?
我试过在 fiddle 中这样做:https://jsfiddle.net/f4202ne3/1/
let fmt = new Intl.NumberFormat('en-US',
{minimumIntegerDigits: 4,
maximumFractionDigits: 0
});
m = 1;
n = 5001
console.log(m.toString(), fmt.format(m)) //"0001"
console.log(n.toString(), fmt.format(n)) ///"5000"
但是这会显示“5,000”和“0,001”。如何将千位分隔符设置为值 (''
)?
您可以使用 .pad
字符串方法 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart)
"1231".padStart(8,0)//00001231
"131".padStart(8,0)//00000131
只需将 useGrouping
选项设置为 false
let fmt = new Intl.NumberFormat('en-US', {
minimumIntegerDigits: 4,
maximumFractionDigits: 0,
useGrouping: false
});
我希望格式化一个数字,使其具有 "leading zeros"(因此字符串的长度始终相等)。 - 虽然我可以作为备份手动执行此操作,但我希望使用最佳选项。 - 由于标准格式语法(如 pythons "{0:4d}".format(number)
)似乎不可用,下一个最好的方法是使用国际化库?
我试过在 fiddle 中这样做:https://jsfiddle.net/f4202ne3/1/
let fmt = new Intl.NumberFormat('en-US',
{minimumIntegerDigits: 4,
maximumFractionDigits: 0
});
m = 1;
n = 5001
console.log(m.toString(), fmt.format(m)) //"0001"
console.log(n.toString(), fmt.format(n)) ///"5000"
但是这会显示“5,000”和“0,001”。如何将千位分隔符设置为值 (''
)?
您可以使用 .pad
字符串方法 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart)
"1231".padStart(8,0)//00001231
"131".padStart(8,0)//00000131
只需将 useGrouping
选项设置为 false
let fmt = new Intl.NumberFormat('en-US', {
minimumIntegerDigits: 4,
maximumFractionDigits: 0,
useGrouping: false
});