@thi.ng/strings v3.9.7
This project is part of the @thi.ng/umbrella monorepo.
About
Various (80+) string formatting, word wrapping & utility functions, some higher-order, some memoized.
Partially based on Clojure version of thi.ng/strf.
General
defFormat/formatinterpolate/interpolateKeysescape/unescapejoin/splice/splitrepeatstringify
Numeric formatters
radixint/intLocalefloat/floatFixedWidthmaybeParseFloat/maybeParseIntpercentuuidvectorB8/B16/B32- fixed size binary formattersU8/U16/U24/U32/U64- fixed size hex formattersZ2/Z3/Z4- fixed sized zero padded number formatters
Casing
lower/upper/capitalizecamel/kebab/snake/upperSnake
Slugify
slugify/slugifyGH
ANSI
isAnsi/isAnsiEnd/isAnsiStartstripAnsilengthAnsi
Word wrapping
wordWrap/wordWrapLine/wordWrapLinesSPLIT_PLAIN/SPLIT_ANSI
Padding / wrapping
centerpadLeft/padRighttruncate/truncateLeft/truncateRighttrimwrap
Indentation
spacesToTabs/spacesToTabsLinetabsToSpaces/tabsToSpacesLine
Char range presets / lookup tables
charRangeALPHA/ALPHA_NUM/DIGITS/LOWER/UPPER/HEXBOM/ESCAPES/ESCAPES_REVWS/PUNCTUATION
Units
unitsbits/bytesgramsmeterssecondsruler/grid
Miscellaneous
hstr- Hollerith stringscomputeCursorPos
Status
STABLE - used in production
Search or submit any issues for this package
Installation
yarn add @thi.ng/stringsES module import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/strings"></script>For Node.js REPL:
# with flag only for < v16
node --experimental-repl-await
> const strings = await import("@thi.ng/strings");Package sizes (gzipped, pre-treeshake): ESM: 4.38 KB
Dependencies
Usage examples
Several demos in this repo's /examples directory are using this package.
A selection:
| Screenshot | Description | Live demo | Source |
|---|---|---|---|
| Basic crypto-currency candle chart with multiple moving averages plots | Demo | Source | |
| Basic SPA example with atom-based UI router | Demo | Source | |
| rstream based spreadsheet w/ S-expression formula DSL | Demo | Source | |
| XML/HTML/SVG to hiccup/JS conversion | Demo | Source |
API
Basic usage examples
// create a custom string formatter
const fmt = defFormat([
"Price: ",
{ usd: "$", gbp: "£", eur: "€" },
float(2),
" (",
percent(2),
" off)"
]);
// use format
fmt("usd", 1.2345, 0.5);
// Price: $1.23 (50.00% off)
fmt("eur", 1.2345, 0.25)
// Price: €1.23 (25.00% off)Authors
Karsten Schmidt
If this project contributes to an academic publication, please cite it as:
@misc{thing-strings,
title = "@thi.ng/strings",
author = "Karsten Schmidt",
note = "https://thi.ng/strings",
year = 2015
}License
© 2015 - 2021 Karsten Schmidt // Apache Software License 2.0
8 months ago
9 months ago
10 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago