advanced-pad
Version:
Left and right string padding with advanced features.
42 lines (40 loc) • 918 B
JavaScript
function advancedPad(dir, string, len, chr = ' ', trunc = false) {
// a string is a string is a string
let str = String(string);
const strLen = str.length;
let i = 0;
// check to truncate
if (strLen > len) {
if (trunc === true) {
if (dir) {
// right trunc
return str.substr(0, len);
}
// left trunc
return str.substr(strLen - len);
}
return str;
} else {
// start padding
const padLen = len - strLen;
while (i++ < padLen) {
if (dir) {
str += chr;
} else {
str = chr + str;
}
}
// handle string output
if (chr.length > 1) {
if (dir) {
return str.substr(0, len);
}
return str.substr(str.length - len);
}
return str;
} // end trunc check
} // end advancedPad();
module.exports = {
padLeft: advancedPad.bind(null, 0),
padRight: advancedPad.bind(null, 1)
};