使用 JavaScript 的弦垫中心

String pad center using JavaScript

我有一个带换行符的字符串:

character = 'ABC\nDEFGHI\nJKLMNOPQ'

我想做center pad,左右两边都有空格

Is it possible to do? I need it to print header information in pos printer.

期望的输出:

       ABC
      DEFGHI
     JKLMNOPQ

如何解决这个问题?

你可以

  • 拆分字符串
  • 获取所有部分的最大长度
  • 填充以半长开始,填充以最大长度结束。

var string = 'ABC\nDEFGHI\nJKLMNOPQ',
    parts = string.split('\n'),
    max = Math.max(...parts.map(({ length }) => length));

parts = parts.map(s => s
    .padStart(s.length + Math.floor((max - s.length) / 2), ' ')
    .padEnd(max, ' ')
);

console.log(parts.join('\n'));