match-casing
v2.0.1
Published
Match the case of `value` to that of `base`
Downloads
24,583
Readme
match-casing
Match the case of value
to that of base
.
Contents
- What is this?
- When should I use this?
- Install
- Use
- API
- Types
- Algorithm
- Compatibility
- Security
- Related
- Contribute
- License
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') // => 'FOO'
matchCasing('foo', 'Baz') // => 'Foo'
matchCasing('foo', 'baz') // => 'foo'
matchCasing('foo', 'BaZ') // => 'foo'
matchCasing('FOO', 'BAZ') // => 'FOO'
matchCasing('FOO', 'Baz') // => 'Foo'
matchCasing('FOO', 'baz') // => 'foo'
matchCasing('FOO', 'BaZ') // => 'FOO'
matchCasing('Foo', 'BAZ') // => 'FOO'
matchCasing('Foo', 'Baz') // => 'Foo'
matchCasing('Foo', 'baz') // => 'foo'
matchCasing('Foo', 'BaZ') // => 'Foo'
matchCasing('’90S', '’twas') // => '’90s'
matchCasing('’N’', 'a') // => '’n’'
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 ofbase
is lowercase, uppercase the first alphabetic character invalue
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
words/emoji-emotion
— list of emoji rated for valencewooorm/emoticon
— info on ASCII emoticonswooorm/strip-skin-tone
— Strip skin-tones from emojiwooorm.com/checkmoji
— Check emoji across platforms
Contribute
Yes please! See How to Contribute to Open Source.