1. casex
All in one, self expressive function for string case styles
casex
Package: casex
Created by: pedsmoreira
Last modified: Sat, 13 Jan 2024 21:34:26 GMT
Version: 4.0.2
License: MIT
Downloads: 1,398
Repository: https://github.com/pedsmoreira/casex

Install

npm install casex
yarn add casex

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 is glue 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.

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code