JavaScript 作 ▸ 2020-05-07 19:54 JavaScript 文字のパディング (右埋め・左埋め・中央寄せ) #JavaScript String の .repeat() がES6なのでIE11では動きまてん 右埋めconst padRight = (str, padchar, len) => { const padstr = padchar.repeat(len); return `${str}${padstr}`.slice(0, len); };左埋めconst padLeft = (str, padchar, len) => { const padstr = padchar.repeat(len); return `${padstr}${str}`.slice(-len); };中央寄せconst padSide = (str, padchar, len) => { const lPadstr = padchar.repeat(Math.floor(len / 2)); const rPadstr = padchar.repeat(Math.ceil(len / 2)); const padded = `${lPadstr}${str}${rPadstr}`; const start = Math.floor((padded.length - len) / 2); return padded.slice(start, start + len); }; テストconsole.assert(padRight('abc', '!', 5) === 'abc!!'); console.assert(padRight('abcde', '!', 5) === 'abcde'); console.assert(padRight('abcdefg', '!', 5) === 'abcde'); console.assert(padLeft('abc', '!', 5) === '!!abc'); console.assert(padLeft('abcde', '!', 5) === 'abcde'); console.assert(padLeft('abcdefg', '!', 5) === 'cdefg'); console.assert(padSide('abc', '!', 5) === '!abc!'); console.assert(padSide('abcde', '!', 5) === 'abcde'); console.assert(padSide('abcdefg', '!', 5) === 'bcdef'); console.assert(padSide('abc', '!', 4) === '!abc'); // 偶数は左寄り console.assert(padSide('abc', '!', 6) === '!!abc!'); // 偶数は左寄り