/js-capitalize

capitalize a string, or all words in a string

Primary LanguageJavaScriptMIT LicenseMIT

capitalize

Capitalize the first letter of a string, or all words in a string.

Synopsis

Capitalize the first letter of a string:

var capitalize = require('capitalize')

var test = require('tape')

test('Capitalize first letter', function (t) {
  t.plan(1)
  t.equal(capitalize("united states"), "United states")
})

Or capitalize each word in a string:

test('Capitalize each word', function (t) {
  t.plan(1)
  t.equal(capitalize.words("united states"), "United States")
})

No matter the original case:

test('Capitalize first letter with original string...', function (t) {
  t.plan(2)
  
  t.test('...in upper case', function (t1) {
    t1.plan(1)
    t1.equal(capitalize.words("UNITED STATES"), "United States")
  })
  
  t.test('...in mixed case', function (t2) {
    t2.plan(1)
    t2.equal(capitalize.words("uNiTeD sTaTeS"), "United States")
  })
  
})

test('Capitalize each word with original string...', function (t) {
  t.plan(2)
  
  t.test('...in upper case', function (t1) {
    t1.plan(1)
    t1.equal(capitalize.words("UNITED STATES"), "United States")
  })
  
  t.test('...in mixed case', function (t2) {
    t2.plan(1)
    t2.equal(capitalize.words("uNiTeD sTaTeS"), "United States")
  })
  
})

Thanks to @c990802 and Stack Overflow, capitalize handles international characters:

test('Capitalize words with international characters', function (t) {
  t.plan(1)
  t.equal(capitalize.words('hello-cañapolísas'), 'Hello-Cañapolísas')
})

and thanks to @ultraflynn, capitalize properly handles quotes within the string:

test('Capitalize each word, ignoring quotes', function(t) {
    t.plan(1)
    t.equal(capitalize.words("it's a nice day"), "It's A Nice Day")
})

Install

npm install capitalize

License

MIT