Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
capitalize
Advanced tools
Capitalize the first letter of a string, or all words in a string.
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 @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 and @DatGuyJonathon 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")
})
test('Quotes test case 2', function(t) {
t.plan(1)
t.equal(capitalize.words("It’s a Boy"), "It’s A Boy")
})
test('Handles embedded quotes', function(t) {
t.plan(1)
t.equal(capitalize.words("'There's angels among us'"), "'There's Angels Among Us'")
})
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')
})
and thanks to a suggestion from @Songyu-Wang, capitalize supports skipping words that should never be capitalized (e.g. articles and coordinating conjunctions in English).
test('Title-case words, by providing a skipWord regex', function (t) {
t.plan(1)
var opts = { skipWord: /^(a|the|an|and|or|but|in|on|of|it)$/ }
t.equal(
capitalize.words('the story of an unlikely feature and the way it was implemented', opts),
'The Story of an Unlikely Feature and the Way it Was Implemented'
)
})
test('Title-case words, by providing a skipWord callback', function (t) {
t.plan(1)
t.equal(
capitalize.words('this is nice eh?', { skipWord: (word) => word.length < 3 }),
'This is Nice eh?'
)
})
npm install capitalize
MIT
FAQs
capitalize the first letter of a string, or all words in a string
The npm package capitalize receives a total of 57,080 weekly downloads. As such, capitalize popularity was classified as popular.
We found that capitalize demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.