【发布时间】:2018-09-01 01:00:35
【问题描述】:
我在这里遇到了一个严重的问题。我有一个用零填充用户输入的函数。例如,如果我输入 88 它会将其标准化为: 00000088。我的功能是这样的:
export default length => (value) => {
const noLeadingZeros = value.toString().replace(/(0+)/, '');
if (noLeadingZeros.length === 0) {
return value;
}
return padLeft(noLeadingZeros, length);
};
用 padleft 是:
export default (num, len) => (
len > num.toString().length ? '0'.repeat(len - num.toString().length) + num
: num
);
我的问题是,如果我输入这样的内容: 80112345 将其转换为 08112345。有什么想法吗?
【问题讨论】:
-
替换错误...它是干什么用的?
-
如果您只是要重新添加前导零,为什么需要删除它们?
-
锚定正则表达式:
/^(0+)/现在,您要从字符串中删除 所有0字符。 -
在什么情况下 number.tostring 会给你前导零?
标签: javascript regex padding