You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				var createPadding = require('./_createPadding'), | 
						|
    stringSize = require('./_stringSize'), | 
						|
    toInteger = require('./toInteger'), | 
						|
    toString = require('./toString'); | 
						|
 | 
						|
/* Built-in method references for those with the same name as other `lodash` methods. */ | 
						|
var nativeCeil = Math.ceil, | 
						|
    nativeFloor = Math.floor; | 
						|
 | 
						|
/** | 
						|
 * 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`. | 
						|
 * | 
						|
 * @static | 
						|
 * @memberOf _ | 
						|
 * @since 3.0.0 | 
						|
 * @category String | 
						|
 * @param {string} [string=''] The string to pad. | 
						|
 * @param {number} [length=0] The padding length. | 
						|
 * @param {string} [chars=' '] The string used as padding. | 
						|
 * @returns {string} Returns the padded string. | 
						|
 * @example | 
						|
 * | 
						|
 * _.pad('abc', 8); | 
						|
 * // => '  abc   ' | 
						|
 * | 
						|
 * _.pad('abc', 8, '_-'); | 
						|
 * // => '_-abc_-_' | 
						|
 * | 
						|
 * _.pad('abc', 3); | 
						|
 * // => 'abc' | 
						|
 */ | 
						|
function pad(string, length, chars) { | 
						|
  string = toString(string); | 
						|
  length = toInteger(length); | 
						|
 | 
						|
  var strLength = length ? stringSize(string) : 0; | 
						|
  if (!length || strLength >= length) { | 
						|
    return string; | 
						|
  } | 
						|
  var mid = (length - strLength) / 2; | 
						|
  return ( | 
						|
    createPadding(nativeFloor(mid), chars) + | 
						|
    string + | 
						|
    createPadding(nativeCeil(mid), chars) | 
						|
  ); | 
						|
} | 
						|
 | 
						|
module.exports = pad;
 | 
						|
 |