pad - string padding on both sides

This commit is contained in:
commenthol
2018-02-24 10:51:27 +01:00
parent e52fbbaaf0
commit b592cce82f
4 changed files with 33 additions and 0 deletions

16
snippets/pad.md Normal file
View File

@ -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'
```

View File

@ -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

3
test/pad/pad.js Normal file
View File

@ -0,0 +1,3 @@
const pad = (string, length = 8, char = ' ') =>
string.padStart((string.length + length) / 2, char).padEnd(length, char);
module.exports = pad;

13
test/pad/pad.test.js Normal file
View File

@ -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();
});