5.0 KiB
String Functions
Sprig has a number of string manipulation functions.
trim
The trim
function removes space from either side of a string:
trim " hello "
The above produces hello
trimAll
Remove given characters from the front or back of a string:
trimAll "$" "$5.00"
The above returns 5.00
(as a string).
trimSuffix
Trim just the suffix from a string:
trimSuffix "-" "hello-"
The above returns hello
upper
Convert the entire string to uppercase:
upper "hello"
The above returns HELLO
lower
Convert the entire string to lowercase:
lower "HELLO"
The above returns hello
title
Convert to title case:
title "hello world"
The above returns Hello World
untitle
Remove title casing. untitle "Hello World"
produces hello world
.
repeat
Repeat a string multiple times:
repeat 3 "hello"
The above returns hellohellohello
substr
Get a substring from a string. It takes three parameters:
- start (int)
- length (int)
- string (string)
substr 0 5 "hello world"
The above returns hello
nospace
Remove all whitespace from a string.
nospace "hello w o r l d"
The above returns helloworld
trunc
Truncate a string (and add no suffix)
trunc 5 "hello world"
The above produces hello
.
abbrev
Truncate a string with ellipses (...
)
Parameters:
- max length
- the string
abbrev 5 "hello world"
The above returns he...
, since it counts the width of the ellipses against the
maximum length.
abbrevboth
Abbreviate both sides:
abbrevboth 5 10 "1234 5678 9123"
the above produces ...5678...
It takes:
- left offset
- max length
- the string
initials
Given multiple words, take the first letter of each word and combine.
initials "First Try"
The above returns FT
randAlphaNum, randAlpha, randNumeric, and randAscii
These four functions generate random strings, but with different base character sets:
randAlphaNum
uses0-9a-zA-Z
randAlpha
usesa-zA-Z
randNumeric
uses0-9
randAscii
uses all printable ASCII characters
Each of them takes one parameter: the integer length of the string.
randNumeric 3
The above will produce a random string with three digits.
wrap
Wrap text at a given column count:
wrap 80 $someText
The above will wrap the string in $someText
at 80 columns.
wrapWith
wrapWith
works as wrap
, but lets you specify the string to wrap with.
(wrap
uses \n
)
wrapWith 5 "\t" "Hello World"
The above produces hello world
(where the whitespace is an ASCII tab
character)
contains
Test to see if one string is contained inside of another:
contains "cat" "catch"
The above returns true
because catch
contains cat
.
hasPrefix and hasSuffix
The hasPrefix
and hasSuffix
functions test whether a string has a given
prefix or suffix:
hasPrefix "cat" "catch"
The above returns true
because catch
has the prefix cat
.
quote and squote
These functions wrap a string in double quotes (quote
) or single quotes
(squote
).
cat
The cat
function concatenates multiple strings together into one, separating
them with spaces:
cat "hello" "beautiful" "world"
The above produces hello beautiful world
indent
The indent
function indents every line in a given string to the specified
indent width. This is useful when aligning multi-line strings:
indent 4 $lots_of_text
The above will indent every line of text by 4 space characters.
replace
Perform simple string replacement.
It takes three arguments:
- string to replace
- string to replace with
- source string
"I Am Henry VIII" | replace " " "-"
The above will produce I-Am-Henry-VIII
plural
Pluralize a string.
len $fish | plural "one anchovy" "many anchovies"
In the above, if the length of the string is 1, the first argument will be
printed (one anchovy
). Otherwise, the second argument will be printed
(many anchovies
).
The arguments are:
- singular string
- plural string
- length integer
NOTE: Sprig does not currently support languages with more complex pluralization
rules. And 0
is considered a plural because the English language treats it
as such (zero anchovies
). The Sprig developers are working on a solution for
better internationalization.
snakecase
Convert string from camelCase to snake_case.
Introduced in 2.12.0.
snakecase "FirstName"
This above will produce first_name
.
camelcase
Convert string from snake_case to CamelCase
Introduced in 2.12.0.
camelcase "http_server"
This above will produce HttpServer
.
shuffle
Shuffle a string.
Introduced in 2.12.0.
shuffle "hello"
The above will randomize the letters in hello
, perhaps producing oelhl
.
See Also...
The Conversion Functions contain functions for converting strings. The String Slice Functions contains functions for working with an array of strings.