diff --git a/lib/underscore.string.js b/lib/underscore.string.js index 7be1bb32..a32e4758 100644 --- a/lib/underscore.string.js +++ b/lib/underscore.string.js @@ -417,23 +417,23 @@ str = str == null ? '' : String(str); length = ~~length; - var padlen = 0; + if(length <= str.length) return str; if (!padStr) padStr = ' '; else if (padStr.length > 1) padStr = padStr.charAt(0); + + var padlen = length - str.length; switch(type) { case 'right': - padlen = length - str.length; return str + strRepeat(padStr, padlen); case 'both': - padlen = length - str.length; - return strRepeat(padStr, Math.ceil(padlen/2)) + str - + strRepeat(padStr, Math.floor(padlen/2)); + var halfPadlen = ~~(padlen/2), + repeatedPadStr = strRepeat(padStr, halfPadlen); + return repeatedPadStr + (padlen % 2 ? padStr : '') + str + repeatedPadStr; default: // 'left' - padlen = length - str.length; return strRepeat(padStr, padlen) + str; } },