index.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * Expose `pad()`.
  3. */
  4. exports = module.exports = pad;
  5. /**
  6. * Pad `str` to `len` with optional `c` char,
  7. * favoring the left when unbalanced.
  8. *
  9. * @param {String} str
  10. * @param {Number} len
  11. * @param {String} c
  12. * @return {String}
  13. * @api public
  14. */
  15. function pad(str, len, c) {
  16. c = c || ' ';
  17. if (str.length >= len) return str;
  18. len = len - str.length;
  19. var left = Array(Math.ceil(len / 2) + 1).join(c);
  20. var right = Array(Math.floor(len / 2) + 1).join(c);
  21. return left + str + right;
  22. }
  23. /**
  24. * Pad `str` left to `len` with optional `c` char.
  25. *
  26. * @param {String} str
  27. * @param {Number} len
  28. * @param {String} c
  29. * @return {String}
  30. * @api public
  31. */
  32. exports.left = function(str, len, c){
  33. c = c || ' ';
  34. if (str.length >= len) return str;
  35. return Array(len - str.length + 1).join(c) + str;
  36. };
  37. /**
  38. * Pad `str` right to `len` with optional `c` char.
  39. *
  40. * @param {String} str
  41. * @param {Number} len
  42. * @param {String} c
  43. * @return {String}
  44. * @api public
  45. */
  46. exports.right = function(str, len, c){
  47. c = c || ' ';
  48. if (str.length >= len) return str;
  49. return str + Array(len - str.length + 1).join(c);
  50. };