casex
All in one, self expressive pattern for string case styles
Introduction
casex
is a function that applies a case style given a pattern.
Instead of having a specific function for each case style, I provide a self-expressive pattern that represent the desired output. For example, kebab-case can be represented as ca-se
and title case as Ca Se
.
Install
npm install --save casex
Usage
import { casex } from "casex";
casex({ text: "your text", pattern: "ca-se" }); // your-text
How it works
1. Breaking text into words
By default, casex
uses capitalizations (A-Z
), -
, _
and spaces (\s
) to break the text into words.
Let's take for example i_am the-real JohnDoe
:
-
i
: 1st word -
am
: 2nd+ word -
the
: 2nd+ word -
real
: 2nd+ word -
John
: 2nd+ word -
Doe
: 2nd+ word
1.1 Custom delimiters
The default will likely work for most of your cases, but if you wish, you can provide custom delimiters:
casex({ text: "foo.bar,baz", pattern: "Ca Se", delimiters: ".," }); // Foo Bar Baz
_Note: The default delimiters are: A-Z\\s_-
.
2. Applying capitalization pattern and gluing words together
Let's take for example Ca_se
:
-
C
: first letter of the first word -
a
: second and subsequent letters of the first word -
_
: anything between the first two and last two letters isglue
and will be repeted between words -
s
: first letter of the second and subsequent words -
e
: second and subsequent letters of the second and subsequent words
Note: You can use any other letters to describe the pattern, such as aa$aa
or na_me
. What matters is that it takes the first two and last two letters for checking capitalization and whatever is in the middle is "glue".
2.1 Special transformations
Besides using lower and uppercase letters, you can also use:
-
*
: Do not change word -
-
: Remove word
Examples
For these examples I'll use the text i_am the-real JohnDoe
lowercase
- Pattern: case
- Output: iamtherealjohndoe
UPPERCASE
- Pattern: CASE
- Output: IAMTHEREALJOHNDOE
snake_case
- Pattern: ca_se
- Output: i_am_the_real_john_doe
spinal-case
- Pattern: ca-se
- Output: i-am-the-real-john-doe
camelCase
- Pattern: caSe
- Output: iAmTheRealJohnDoe
UpperCamelCase
- Pattern: CaSe
- Output: IAmTheRealJohnDoe
Sentence case
- Pattern: Ca se
- Output: I am the real john doe
Title Case
- Pattern: Ca Se
- Output: I Am The Real John Doe
Weird Example
- Pattern: Ca12 34Se
- Output: I12 34Am12 34The12 34Real12 34John12 34Doe
Examples with special characters
Capitalize first letter
- Pattern: C* **
- Output: I am the real John Doe
Initials
- Input: John Doe
- Pattern: C-S-
- Output: JD
Previous versions
Although for most cases it will work just fine, casex
4.x is not fully compatible previous versions. If you need previous docs please refer to:
License
casex is open-sourced software licensed under the MIT License.