Javascript:使用' excel-like格式化'

时间:2016-01-15 07:55:43

标签: javascript

我想在Javascript:

中复制此公式(实际上来自Google表格)
=TEXT(9,"0000000")

这将导致' 0000009'

这是否可以在没有额外逻辑的单一功能中实现?

3 个答案:

答案 0 :(得分:1)

这样的函数可能如下所示:

function TEXT(n, format){
 return format.substring(0,format.length - n.toString().length) + n;
}

答案 1 :(得分:1)

您还可以使用递归,其中pad是所需最终字符串的长度。

function text(str, pad) {
  return pad > 1 ? '0' + text(str, --pad) : str;
}

text(9, 8); // 00000009

DEMO

稍微优化的版本:

function text(str, n, padder) {
  if (n === 1) return str;
  return text(padder + str, --n, padder);
}

text(9, 8, '0');

答案 2 :(得分:1)

您可以使用此lib https://www.npmjs.com/package/excel-style-dataformatter

所以对于你的情况: result = dataFormatter.format(9, "Number", "0000000")