-4

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

character = 'ABC\nDEFGHI\nJKLMNOPQ'

我想做中心垫,左右两边都有空格。

有可能吗?我需要它在 pos 打印机中打印标题信息。

期望的输出:

       ABC
      DEFGHI
     JKLMNOPQ

我该如何解决这个问题?

4

1 回答 1

7

你可以

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

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'));

于 2019-04-28T15:05:49.813 回答