Run
npm i titleizejs
to install the module in your project.
By default Titleize JS:
- Removes all symbols in the provided string, except apostrophes (') *.
- Makes all words completely lower case and capitalises every first letter
- Capitalises the all words in hyphenated words
- Always capitalises the first and last word of the string
- Does not capitalise the following words (articles, conjunctions, prepositions), unless they are the first or last word of the sentence:
- a, an, the
- and, but, or, nor
- via, to, on, onto, in, into
- per, for, of, by
- at, as, yet, so
* Apostrophes are not removed, since they are vital in abbreviations, such as don't, I'm, and you'd.
Support for the following is planned and wanted, but not yet present:
- International (non-English) titleisation.
First, require the module
const titleize = require('titleizejs');
Basic syntax of Titleize JS
titleize(string, options);
Example:
titleize('hello world'); // result: Hello World
So far, the options parameter is an object with three possible properties. These are:
- keepUpperCaseWords (
Boolean
, default:false
, optional) - keepUpperCaseLetters (
Boolean
, default:false
, optional) - ignoreSymbols (
String
, optional) - isSlug (
Boolean
, optional)
Setting this to true will preserve all present words that are fully capitalised. This can be useful when dealing with abbreviations or acronyms.
titleize('hello WORLD', { keepUpperCaseWords: true }); // result: Hello WORLD
Setting this to true will preserve all present capital letters.
titleize('hello camelCase', { keepUpperCaseLetters: true }); // result: Hello CamelCase
Providing a string to this setting will make sure that the provided symbols are not removed by Titleize JS. This string can contain many different symbols.
titleize('hello world! do you like javascript?', { ignoreSymbols: '!' });
// result: Hello World! Do You Like Javascript
titleize('hello world! do you like javascript?', { ignoreSymbols: '?' });
// result: Hello World Do You Like Javascript?
titleize('hello world! do you like javascript?', { ignoreSymbols: '!?' });
// result: Hello World! Do You Like Javascript?
If the string passed to titleize
is a slug, the default behaviour of Titleize JS is to capitalise all words and preserve the hyphens, as if it were a hyphenated word. To make sure that the slug gets converted properly, pass the isSlug setting in the options object. E.g.
// Default behaviour
titleize('i-am-a-slug'); // result: I-Am-a-Slug
// Passing { isSlug: true }
titleize('i-am-a-slug', { isSlug: true }); // result: I Am a Slug
If you happen to have slugs that are use different separators, you can pass the separator for your string to isSlug
and it will replace those. E.g.:
titleize('i_am_a_slug', { isSlug: '_' }) // result: I Am a Slug
If you want to contribute, report a bug, or have a suggestion for a feature, contact me at robin@goudeketting.nl or contact me via Github or Twitter.