Skip to content

Instantly share code, notes, and snippets.

@billywhizz
Forked from clochix/padding.js
Created May 30, 2025 23:49
Show Gist options
  • Save billywhizz/2ac24f1e569e3eca1627a12d0c0b50e0 to your computer and use it in GitHub Desktop.
Save billywhizz/2ac24f1e569e3eca1627a12d0c0b50e0 to your computer and use it in GitHub Desktop.
JavaScript padding tolerant to ANSI escape sequences
/**
* Display a string with padding
*
* @param {String} str String to pad
* @param {Integer} l padding length
* @param {Boolean} [r] true for right padding
*
* @return {String}
*/
function pad(str, l, r) {
"use strict";
var tmp = new Array(l).join(' ');
str = '' + str;
var strClean = str.replace(/\u001b\[[^m]+m/g, '');
return r ? tmp.substr(0, l - strClean.length) + str.substr(0, l + str.length - strClean.length) : str.substr(0, l + str.length - strClean.length) + tmp.substr(0, l - strClean.length);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment