Skip to content

Instantly share code, notes, and snippets.

@laubstein
Last active August 29, 2015 14:00
Show Gist options
  • Save laubstein/f5e2f7decd34555ac6ea to your computer and use it in GitHub Desktop.
Save laubstein/f5e2f7decd34555ac6ea to your computer and use it in GitHub Desktop.
// http://jsperf.com/padleft/2
/**
* String.repeat('a', 5) = 'aaaaa'
* String.repeat('ab', 5) = 'ababa'
* String.repeat('abc', 5) = 'abcab'
*/
String.repeat = function repeat(str, len) {
while (str.length < len) {
if (str.length * 2 >= len) {
return str + str.substring(0, len - str.length);
} else {
str += str;
}
}
if (str.length == len) {
return str;
}
return str.substring(0, len);
};
/**
* 'a'.padLeft('b', 5) = 'bbbba'
* 'a'.padLeft('ab', 5) = 'ababa'
* 'a'.padLeft('abc', 5) = 'abcaa'
*/
String.prototype.padLeft = function padLeft(pad, len) {
if (this.length < len) {
pad = pad || ' ';
return String.repeat(pad, len - this.length) + this;
}
return this;
};
/**
* 'a'.padRight('b', 5) = 'abbbb'
* 'a'.padRight('ab', 5) = 'aabab'
* 'a'.padRight('abc', 5) = 'aabca'
*/
String.prototype.padRight = function padRight(pad, len) {
if (this.length < len) {
pad = pad || ' ';
return '' + this + String.repeat(pad, len - this.length);
}
return this;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment