match-casing
Match the case of value
to that of base
.
Contents
What is this?
This package matches the case (lowercase, uppercase, capitalized) of a string to
that of another string.
When should I use this?
This package is useful if a user wrote some word, and you want to suggest a
replacement, and want to make sure that the suggestion matches that of the
original.
Install
This package is ESM only.
In Node.js (version 12.20+, 14.14+, or 16.0+), install with npm:
npm install match-casing
In Deno with Skypack:
import {matchCasing} from 'https://cdn.skypack.dev/match-casing@2?dts'
In browsers with Skypack:
<script type="module">
import {matchCasing} from 'https://cdn.skypack.dev/match-casing@2?min'
</script>
Use
import {matchCasing} from 'match-casing'
matchCasing('foo', 'BAZ')
matchCasing('foo', 'Baz')
matchCasing('foo', 'baz')
matchCasing('foo', 'BaZ')
matchCasing('FOO', 'BAZ')
matchCasing('FOO', 'Baz')
matchCasing('FOO', 'baz')
matchCasing('FOO', 'BaZ')
matchCasing('Foo', 'BAZ')
matchCasing('Foo', 'Baz')
matchCasing('Foo', 'baz')
matchCasing('Foo', 'BaZ')
matchCasing('’90S', '’twas')
matchCasing('’N’', 'a')
API
This package exports the following identifier: matchCasing
.
There is no default export.
matchCasing(value, base)
Transform the case in value
(string
) to match that of base
(string
).
Types
This package is fully typed with TypeScript.
There are no extra exported types.
Algorithm
- If
base
is uppercase, value
is uppercased - Else, if
base
is lowercase, value
is lowercased - Else, if the first alphabetic character in
base
is uppercase,
and the rest of base
is lowercase, uppercase the first alphabetic
character in value
and lowercase the rest - Else, return
value
unmodified
The third case deals with initial non-alphabetical characters as expected.
Compatibility
This package is at least compatible with all maintained versions of Node.js.
As of now, that is Node.js 12.20+, 14.14+, and 16.0+.
It also works in Deno and modern browsers.
Security
This package is safe.
Related
Contribute
Yes please!
See How to Contribute to Open Source.
License
MIT © Titus Wormer