使用 JavaScript 的字符串填充中心

Ago*_*Liu -5 javascript center pad

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

character = 'ABC\nDEFGHI\nJKLMNOPQ'
Run Code Online (Sandbox Code Playgroud)

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

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

期望的输出:

       ABC
      DEFGHI
     JKLMNOPQ
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Nin*_*olz 6

你可以

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

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'));
Run Code Online (Sandbox Code Playgroud)