diff --git a/snippets/pad.md b/snippets/pad.md new file mode 100644 index 000000000..d3ba0c4b1 --- /dev/null +++ b/snippets/pad.md @@ -0,0 +1,16 @@ +### pad + +Pads `string` on the left and right side if it's shorter than `length`. +String is *NOT* truncated on both sides if it exceeds length. + +```js +const pad = (string, length = 8, char = ' ') => + string.padStart((string.length + length) / 2, char).padEnd(length, char); +module.exports = pad; +``` + +```js +pad('cat'); //> ' cat ' +pad(String(42), 4, '0'); //> '004200' +pad('foobar', 3); //> 'foobar' +``` diff --git a/tag_database b/tag_database index 54db11193..55d2f98af 100644 --- a/tag_database +++ b/tag_database @@ -177,6 +177,7 @@ onUserInputChange:browser,event,advanced orderBy:object,array over:adapter,function overArgs:adapter,function +pad:string palindrome:string parseCookie:utility,string partial:function diff --git a/test/pad/pad.js b/test/pad/pad.js new file mode 100644 index 000000000..373aafbb6 --- /dev/null +++ b/test/pad/pad.js @@ -0,0 +1,3 @@ +const pad = (string, length = 8, char = ' ') => + string.padStart((string.length + length) / 2, char).padEnd(length, char); +module.exports = pad; diff --git a/test/pad/pad.test.js b/test/pad/pad.test.js new file mode 100644 index 000000000..ec7d0af8b --- /dev/null +++ b/test/pad/pad.test.js @@ -0,0 +1,13 @@ +const test = require('tape'); +const pad = require('./pad.js'); + +test('Testing pad', (t) => { + //For more information on all the methods supported by tape + //Please go to https://github.com/substack/tape + t.true(typeof pad === 'function', 'pad is a Function'); + t.equal(pad('cat'), ' cat ', 'cat is padded on both sides'); + t.equal(pad('cat').length, 8, 'length of string is 8'); + t.equal(pad(String(42), 6, '0'), '004200', 'pads 42 with "0"'); + t.equal(pad('foobar', 3), 'foobar', 'does not truncates if string exceeds length'); + t.end(); +});