From b592cce82fbd3dedb368b1aaedda6c26b4be0433 Mon Sep 17 00:00:00 2001 From: commenthol Date: Sat, 24 Feb 2018 10:51:27 +0100 Subject: [PATCH 1/2] pad - string padding on both sides --- snippets/pad.md | 16 ++++++++++++++++ tag_database | 1 + test/pad/pad.js | 3 +++ test/pad/pad.test.js | 13 +++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 snippets/pad.md create mode 100644 test/pad/pad.js create mode 100644 test/pad/pad.test.js 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(); +}); From bfc7a46020a036199831e1acf2cfc728ed85b8bc Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Mon, 26 Feb 2018 13:50:13 +0200 Subject: [PATCH 2/2] Update pad.md --- snippets/pad.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/snippets/pad.md b/snippets/pad.md index d3ba0c4b1..18e449739 100644 --- a/snippets/pad.md +++ b/snippets/pad.md @@ -1,16 +1,17 @@ ### 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. +Pads a string on both sides with the specified character, if it's shorter than the specified length. + +Use `String.padStart()` and `String.padEnd()` to pad both sides of the given string. +Omit the third argument, `char`, to use the whitespace character as the default padding character. ```js -const pad = (string, length = 8, char = ' ') => - string.padStart((string.length + length) / 2, char).padEnd(length, char); -module.exports = pad; +const pad = (str, length, char = ' ') => + str.padStart((str.length + length) / 2, char).padEnd(length, char); ``` ```js -pad('cat'); //> ' cat ' -pad(String(42), 4, '0'); //> '004200' -pad('foobar', 3); //> 'foobar' +pad('cat', 8); // ' cat ' +pad(String(42), 6, '0'); // '004200' +pad('foobar', 3); // 'foobar' ```