Files
30-seconds-of-code/snippets/to-sentence-case.md
Angelos Chalaris 61200d90c4 Kebab file names
2023-04-27 21:58:35 +03:00

1.1 KiB

title, tags, cover, author, firstSeen
title tags cover author firstSeen
Sentencecase string string,regexp sofia-tram chalarangelo 2023-03-27T05:00:00-04:00

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() and String.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'