1 var baseToString = require('../internal/baseToString'),
2 createPadding = require('../internal/createPadding');
4 /* Native method references for those with the same name as other `lodash` methods. */
5 var nativeCeil = Math.ceil,
6 nativeFloor = Math.floor,
7 nativeIsFinite = global.isFinite;
10 * Pads `string` on the left and right sides if it's shorter than `length`.
11 * Padding characters are truncated if they can't be evenly divided by `length`.
16 * @param {string} [string=''] The string to pad.
17 * @param {number} [length=0] The padding length.
18 * @param {string} [chars=' '] The string used as padding.
19 * @returns {string} Returns the padded string.
25 * _.pad('abc', 8, '_-');
31 function pad(string, length, chars) {
32 string = baseToString(string);
35 var strLength = string.length;
36 if (strLength >= length || !nativeIsFinite(length)) {
39 var mid = (length - strLength) / 2,
40 leftLength = nativeFloor(mid),
41 rightLength = nativeCeil(mid);
43 chars = createPadding('', rightLength, chars);
44 return chars.slice(0, leftLength) + string + chars;