UNPKG

707 BJavaScriptView Raw
1/**
2 * Convert string into sentence case.
3 * First letter capped and each punctuations are joined with space.
4 * @memberof module:stringcase/lib
5 * @function sentencecase
6 * @param {string} str - String to convert.
7 * @returns {string} Sentence cased string.
8 */
9
10'use strict'
11
12const lowercase = require('./lowercase')
13const trimcase = require('./trimcase')
14const snakecase = require('./snakecase')
15const capitalcase = require('./capitalcase')
16
17const JOINER = ' '
18
19/** @lends sentencecase*/
20function sentencecase (str) {
21 str = String(str).replace(/^[\-_\.\s]/g, JOINER)
22 if (!str) {
23 return str
24 }
25 return capitalcase(snakecase(trimcase(str)).replace(/_/g, JOINER))
26}
27
28module.exports = sentencecase