js-capitalize-nullsafe
v2.0.2
Published
capitalize the first letter of a string, or all words in a string
Downloads
3
Readme
This is a fork of https://github.com/grncdr/js-capitalize
This capitalize doesn't fail when null or undefined is passed, simplifying the calls without need to check every time.
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")
})
})
Doen't fail on null, undefined or number
test('Does not fail on...', function (t) {
t.plan(3)
t.test('...null', function (t1) {
t1.plan(1)
t1.equal(capitalize.words(null), null)
})
t.test('...undefined', function (t2) {
t2.plan(1)
t2.equal(capitalize.words(undefined), undefined)
})
t.test('...number', function (t3) {
t3.plan(1)
t3.equal(capitalize.words(3), 3)
})
})
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 @6akcuk it can also capitalize cyrillic characters:
test('Capitalize words with cyrillic characters', function (t) {
t.plan(1)
t.equal(capitalize.words('привет мир'), "Привет Мир")
})
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")
})
and thanks to @sergejkaravajnij, capitalize also supports a second boolean parameter to preserve casing of the rest of the strings content:
test('Capitalize a string, preserving the original case of other letters', function (t) {
t.plan(1)
t.equal(capitalize('canDoItRight', true), 'CanDoItRight')
})
test('Capitalize words, preserving the case', function (t) {
t.plan(1)
t.equal(capitalize.words('on gitHub', true), 'On GitHub')
})
and thanks to @rubengmurray, capitalize now handles shorthand ordinal numbers as would be expected:
test('Capitalize words, handling shorthand ordinals (1st, 2nd, 3rd) correctly', function (t) {
t.plan(1)
t.equal(capitalize.words('1st place'), '1st Place')
})
Install
npm install capitalize
License
MIT