JSPM

@guanghechen/string

2.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 41
  • Score
    100M100P100Q70242F
  • License MIT

String utilities including case transformers and parsers.

Package Exports

  • @guanghechen/string

Readme

@guanghechen/string


String utilities including case transformers, bytes parsers, and number/interval collectors.

Install

  • npm

    npm install --save @guanghechen/string
  • yarn

    yarn add @guanghechen/string

Usage

Case Transformers

import {
  toCamelCase,
  toKebabCase,
  toSnakeCase,
  toPascalCase,
  toConstantCase,
  toCapitalCase,
  toSentenceCase,
  toTitleCase,
  toDotCase,
  toPathCase,
  composeTextTransformers,
  toTrim,
} from '@guanghechen/string'

toCamelCase('test string')     // 'testString'
toKebabCase('test string')     // 'test-string'
toSnakeCase('test string')     // 'test_string'
toPascalCase('test string')    // 'TestString'
toConstantCase('test string')  // 'TEST_STRING'
toCapitalCase('test string')   // 'Test String'
toSentenceCase('testString')   // 'Test string'
toTitleCase('a simple test')   // 'A Simple Test'
toDotCase('test string')       // 'test.string'
toPathCase('test string')      // 'test/string'

// Compose multiple transformers
const transform = composeTextTransformers(toTrim, toKebabCase)
transform(' TeSt_StrinG ')     // 'test-string'

Bytes Parser

import { parseBytesString } from '@guanghechen/string'

parseBytesString('1K')    // 1024
parseBytesString('1KB')   // 1024
parseBytesString('1M')    // 1048576
parseBytesString('1MB')   // 1048576
parseBytesString('1.5G')  // 1610612736
parseBytesString('100')   // 100
parseBytesString('2T')    // 2199023255552

Number/Interval Collectors

Parse comma/space-separated number ranges:

import { collectNumbers, collectIntervals } from '@guanghechen/string'

// Collect individual numbers from ranges
collectNumbers('1-3')           // [1, 2, 3]
collectNumbers('3,1-2,2,2')     // [1, 2, 3]
collectNumbers('2-4,1-3,5-9')   // [1, 2, 3, 4, 5, 6, 7, 8, 9]

// Collect merged intervals
collectIntervals('1-3')         // [[1, 3]]
collectIntervals('3,7-5,2,2')   // [[2, 3], [5, 7]]
collectIntervals('2-4,1-3,6-9') // [[1, 4], [6, 9]]

// Custom separator
collectNumbers('1;2;3-5', /;/)  // [1, 2, 3, 4, 5]

Transformer Reference

Transformer Input Output
toCamelCase 'test string' 'testString'
toCapitalCase 'test string' 'Test String'
toConstantCase 'test string' 'TEST_STRING'
toDotCase 'test string' 'test.string'
toKebabCase 'test string' 'test-string'
toLowerCase 'TEST STRING' 'test string'
toPascalCase 'test string' 'TestString'
toPathCase 'test string' 'test/string'
toSentenceCase 'testString' 'Test string'
toSnakeCase 'test string' 'test_string'
toTitleCase 'a simple test' 'A Simple Test'
toUpperCase 'test string' 'TEST STRING'
toTrim ' test ' 'test'

Reference