From 8b77e95d3bf69f8a80ffcda1840c806b6c04a504 Mon Sep 17 00:00:00 2001 From: Unickorn Date: Tue, 6 Oct 2020 11:48:41 +0300 Subject: [PATCH 1/3] Add wordWrap --- snippets/wordWrap.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 snippets/wordWrap.md diff --git a/snippets/wordWrap.md b/snippets/wordWrap.md new file mode 100644 index 000000000..81f6550af --- /dev/null +++ b/snippets/wordWrap.md @@ -0,0 +1,20 @@ +--- +title: wordWrap +tags: string,regexp,intermediate +--- + +Wraps a string to a given number of characters using a string break character. + +- Use `String.prototype.replace()` and a regular expression to insert a given break character at the nearest whitespace of `max` characters. +- Omit the third argument, `br`, to use the default value of `'\n'`. + +```js +const wordWrap = (s, max, br = '\n') => s.replace( + new RegExp(`(?![^\\n]{1,${max}}$)([^\\n]{1,${max}})\\s`, 'g'), '$1' + br +); +``` + +```js +wordWrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus.', 32) // 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit.\nFusce tempus.' +wordWrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus.', 32, '\r\n') // 'Lorem ipsum dolor sit amet,\r\nconsectetur adipiscing elit.\r\nFusce tempus.' +``` From ef3e4f0c650f28b741f3c7b84a66e23d1371507d Mon Sep 17 00:00:00 2001 From: Unickorn Date: Tue, 6 Oct 2020 11:49:14 +0300 Subject: [PATCH 2/3] Fix some typos --- snippets/normalizeLineEndings.md | 6 +++--- snippets/toTitleCase.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/snippets/normalizeLineEndings.md b/snippets/normalizeLineEndings.md index 719634a63..61a60b2c5 100644 --- a/snippets/normalizeLineEndings.md +++ b/snippets/normalizeLineEndings.md @@ -6,13 +6,13 @@ tags: array,intermediate Normalizes line endings in a string. - Use `String.prototype.replace()` and a regular expression to match and replace line endings with the `normalized` version. -- Omit the seconds argument, `normalized`, to use the default value of `'\r\n'`. +- Omit the second argument, `normalized`, to use the default value of `'\r\n'`. ```js const normalizeLineEndings = (str, normalized = '\r\n') => str.replace(/\r?\n/g, normalized); ``` ```js -splitLines('This\r\nis a\nmultiline\nstring.\r\n'); // 'This\r\nis a\r\nmultiline\r\nstring.\r\n' -splitLines('This\r\nis a\nmultiline\nstring.\r\n', '\n'); // 'This\nis a\nmultiline\nstring.\n' +normalizeLineEndings('This\r\nis a\nmultiline\nstring.\r\n'); // 'This\r\nis a\r\nmultiline\r\nstring.\r\n' +normalizeLineEndings('This\r\nis a\nmultiline\nstring.\r\n', '\n'); // 'This\nis a\nmultiline\nstring.\n' ``` diff --git a/snippets/toTitleCase.md b/snippets/toTitleCase.md index bc3158d08..9ae72c926 100644 --- a/snippets/toTitleCase.md +++ b/snippets/toTitleCase.md @@ -1,6 +1,6 @@ --- title: toTitleCase -tags: string,regepx,intermediate +tags: string,regexp,intermediate --- Converts a string to title case. From 045a329948043cde046d653dffd9eaf966d5fd34 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Tue, 6 Oct 2020 12:19:20 +0300 Subject: [PATCH 3/3] Update wordWrap.md --- snippets/wordWrap.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/snippets/wordWrap.md b/snippets/wordWrap.md index 81f6550af..d7f107ea7 100644 --- a/snippets/wordWrap.md +++ b/snippets/wordWrap.md @@ -9,12 +9,12 @@ Wraps a string to a given number of characters using a string break character. - Omit the third argument, `br`, to use the default value of `'\n'`. ```js -const wordWrap = (s, max, br = '\n') => s.replace( - new RegExp(`(?![^\\n]{1,${max}}$)([^\\n]{1,${max}})\\s`, 'g'), '$1' + br +const wordWrap = (str, max, br = '\n') => str.replace( + new RegExp(`(?![^\\n]{1,${max}}$)([^\\n]{1,${max}})\\s`, 'g'), '$1' + br ); ``` ```js -wordWrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus.', 32) // 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit.\nFusce tempus.' -wordWrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus.', 32, '\r\n') // 'Lorem ipsum dolor sit amet,\r\nconsectetur adipiscing elit.\r\nFusce tempus.' +wordWrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus.', 32); // 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit.\nFusce tempus.' +wordWrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus.', 32, '\r\n'); // 'Lorem ipsum dolor sit amet,\r\nconsectetur adipiscing elit.\r\nFusce tempus.' ```