From 7e96f39d2444a69d2d5f8e5658e5bb9fbf00b3bd Mon Sep 17 00:00:00 2001 From: ccjmne Date: Fri, 19 Oct 2018 03:49:34 +0200 Subject: [PATCH] Add toTitleCase snippet and update tag_database accordingly --- snippets/toTitleCase.md | 22 ++++++++++++++++++++++ tag_database | 1 + 2 files changed, 23 insertions(+) create mode 100644 snippets/toTitleCase.md diff --git a/snippets/toTitleCase.md b/snippets/toTitleCase.md new file mode 100644 index 000000000..2108dddbd --- /dev/null +++ b/snippets/toTitleCase.md @@ -0,0 +1,22 @@ +### toTitleCase + +Converts a string to title case. + +The algorithm featured here breaks down as follows: +1. Break the string into words, using a [Regular Expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) +2. Capitalize each of them +3. Stich them back together, using the whitespace `' '` character as a separator + +```js +const toTitleCase = str => str + .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) + .map(x => x.charAt(0).toUpperCase() + x.slice(1).toLowerCase()) + .join(' '); +``` + +```js +toTitleCase('some_database_field_name'); // 'Some Database Field Name' +toTitleCase('Some label that needs to be title-cased'); // 'Some Label That Needs To Be Title Cased' +toTitleCase('some-package-name'); // 'Some Package Name' +toTitleCase('some-mixed_string with spaces_underscores-and-hyphens'); // 'Some Mixed String With Spaces Underscores And Hyphens' +``` diff --git a/tag_database b/tag_database index cd05988b1..aaa61a47e 100644 --- a/tag_database +++ b/tag_database @@ -301,6 +301,7 @@ tomorrow:date,intermediate toOrdinalSuffix:utility,math,intermediate toSafeInteger:math,beginner toSnakeCase:string,regexp,intermediate +toTitleCase:string,regepx,intermediate transform:object,array,intermediate triggerEvent:browser,event,intermediate truncateString:string,beginner