UNPKG

es-toolkit

Version:

A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.

23 lines (22 loc) 1.05 kB
//#region src/string/pad.ts /** * Pads string on the left and right sides if it's shorter than length. Padding characters are truncated if they can't be evenly divided by length. * If the length is less than or equal to the original string's length, or if the padding character is an empty string, the original string is returned unchanged. * * @param str - The string to pad. * @param [length] - The length of the resulting string once padded. * @param [chars] - The character(s) to use for padding. * @returns The padded string, or the original string if padding is not required. * * @example * const result1 = pad('abc', 8); // result will be ' abc ' * const result2 = pad('abc', 8, '_-'); // result will be '_-abc_-_' * const result3 = pad('abc', 3); // result will be 'abc' * const result4 = pad('abc', 2); // result will be 'abc' * */ function pad(str, length, chars = " ") { return str.padStart(Math.floor((length - str.length) / 2) + str.length, chars).padEnd(length, chars); } //#endregion exports.pad = pad;