Projekt

Obecné

Profil

Stáhnout (1.26 KB) Statistiky
| Větev: | Revize:
1
var createPadding = require('./_createPadding'),
2
    stringSize = require('./_stringSize'),
3
    toInteger = require('./toInteger'),
4
    toString = require('./toString');
5

    
6
/* Built-in method references for those with the same name as other `lodash` methods. */
7
var nativeCeil = Math.ceil,
8
    nativeFloor = Math.floor;
9

    
10
/**
11
 * Pads `string` on the left and right sides if it's shorter than `length`.
12
 * Padding characters are truncated if they can't be evenly divided by `length`.
13
 *
14
 * @static
15
 * @memberOf _
16
 * @since 3.0.0
17
 * @category String
18
 * @param {string} [string=''] The string to pad.
19
 * @param {number} [length=0] The padding length.
20
 * @param {string} [chars=' '] The string used as padding.
21
 * @returns {string} Returns the padded string.
22
 * @example
23
 *
24
 * _.pad('abc', 8);
25
 * // => '  abc   '
26
 *
27
 * _.pad('abc', 8, '_-');
28
 * // => '_-abc_-_'
29
 *
30
 * _.pad('abc', 3);
31
 * // => 'abc'
32
 */
33
function pad(string, length, chars) {
34
  string = toString(string);
35
  length = toInteger(length);
36

    
37
  var strLength = length ? stringSize(string) : 0;
38
  if (!length || strLength >= length) {
39
    return string;
40
  }
41
  var mid = (length - strLength) / 2;
42
  return (
43
    createPadding(nativeFloor(mid), chars) +
44
    string +
45
    createPadding(nativeCeil(mid), chars)
46
  );
47
}
48

    
49
module.exports = pad;
(505-505/634)