Sentencecase string
JavaScript, String, Regexp · Mar 27, 2023

Converts a string to sentence case.
- Use
String.prototype.match()
to break the string into words using an appropriate regexp. - Use
Array.prototype.slice()
,Array.prototype.join()
andString.prototype.toUpperCase()
to combine them, capitalizing the first letter of the first word and adding a whitespace between them.
const toSentenceCase = str => {
const s =
str &&
str
.match(
/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
)
.join(' ');
return s.slice(0, 1).toUpperCase() + s.slice(1);
};
toSentenceCase('some_database_field_name'); // 'Some database field name'
toSentenceCase('Some label that needs to be title-cased');
// 'Some label that needs to be title cased'
toSentenceCase('some-package-name'); // 'Some package name'
toSentenceCase('some-mixed_string with spaces_underscores-and-hyphens');
// 'Some mixed string with spaces underscores and hyphens'
Written by Angelos Chalaris
I'm Angelos Chalaris, a JavaScript software engineer, based in Athens, Greece. The best snippets from my coding adventures are published here to help others learn to code.
If you want to keep in touch, follow me on GitHub.