String.prototype Case Conversions - toTitleCase, toCapitalCase, anyStringToTitleCase.
There are numerous String.prototype code examples for changing case that can be found, yet none seem to address the common issue where the string input is in all-capitals and is needed to output as "Capital case" or "Title Case" - the examples I've seen will simply result in returning the string still as all-caps.
Have chosen to follow the String nomenclature convention as described by .toLowerCase() and .toUpperCase().
.toCapitalCase()
/* string.toCapitalCase()
Handles inputs:
UPPERCASE, "space separated".
eg: 'STRING TO CONVERT'.toCapitalCase() returns: 'String to convert'
*/
String.prototype.toCapitalCase = function() {
return this.charAt(0).toUpperCase() + this.slice(1).toLowerCase();
};
.toTitleCase()
/* string.toTitleCase()
Handles inputs:
UPPERCASE, "space separated".
eg: 'STRING TO CONVERT'.toTitleCase() returns: 'String To Convert'
*/
String.prototype.toTitleCase = function() {
return this.split(' ')
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
.join(' ');
};
.anyStringToTitleCase()
/* string.anyStringToTitleCase()
Handles inputs:
"space separated", camelCase, ClassCase, UPPERCASE, snake_case, dash-case, object.case.
eg: 'string-toConvert_has a.very ComplexStructure'.anyStringToTitleCase()
returns: 'String To Convert Has A Very Complex Structure'
*/
const STRING_DECAMELIZE_REGEXP = (/([a-z\d])([A-Z])/g);
const STRING_SEPARATORS_REGEXP = (/(\-|\_|\.)/g);
String.prototype.anyStringToTitleCase = function() {
return this.replace(STRING_DECAMELIZE_REGEXP, '$1 $2')
.replace(STRING_SEPARATORS_REGEXP, ' ')
.split(' ')
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
.join(' ');
};Written by gentlefox
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Javascript
Authors
Did you know?
JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.
Security insights from Cside
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#