Strings
The Strings registry offers a comprehensive set of functions for manipulating strings, including formatting, splitting, joining, and other common string operations.
nospace
The function removes all whitespace characters from the provided string, eliminating any spaces, tabs, or line breaks.
Signature
Nospace(str string) string{{ "Hello World" | nospace }} // Output: HelloWorldtrim
The function removes any leading and trailing whitespace from the provided string.
Signature
Trim(str string) string{{ " Hello World " | trim }} // Output: Hello WorldtrimAll
The function removes all instances of any characters in the 'cutset' from both the beginning and the end of the provided string.
Signature
TrimAll(cutset string, str string){{ "xyzHelloxyz" | trimAll "xyz" }} // Output: HellotrimPrefix
The function removes the specified 'prefix' from the start of the provided string if it is present.
Signature
TrimPrefix(prefix string, str string) string{{ "HelloWorld" | trimPrefix "Hello" }} // Output: World
{{ "HelloWorld" | trimPrefix "World" }} // Output: HelloWorldtrimSuffix
The function removes the specified 'suffix' from the end of the provided string if it is present.
Signature
TrimSuffix(suffix string, str string) string{{ "HelloWorld" | trimSuffix "Hello" }} // Output: HelloWorld
{{ "HelloWorld" | trimSuffix "World" }} // Output: Hellocontains
The function checks whether the provided string contains the specified substring.
Signature
Contains(substring string, str string) bool{{ "Hello" | contains "ell" }} // Output: truehasPrefix
The function checks whether the provided string starts with the specified prefix.
Signature
HasPrefix(prefix string, str string) bool{{ "HelloWorld" | hasPrefix "Hello" }} // Output: truehasSuffix
The function checks whether the provided string ends with the specified suffix.
Signature
HasSuffix(suffix string, str string) bool{{ "HelloWorld" | hasSuffix "World" }} // Output: truetoLower
The function converts all characters in the provided string to lowercase.
Signature
ToLower(str string) string{{ "HELLO WORLD" | toLower }} // Output: hello worldtoUpper
The function converts all characters in the provided string to uppercase.
Signature
ToUpper(str string) string{{ "hello world" | toUpper }} // Output: HELLO WORLDreplace
The function replaces all occurrences of a specified substring ('old') in the source string with a new substring ('new').
Signature
Replace(old string, new string, src string) string{{ "banana" | replace "a" "o" }} // Output: bononorepeat
The function repeats the provided string a specified number of times.
Signature
Repeat(count int, str string) string{{ "ha" | repeat 3 }} // Output: hahahajoin
The function concatenates elements of a slice into a single string, with each element separated by a specified delimiter. It can convert various slice types to a slice of strings if needed before joining.
Signature
Join(sep string, v any) string{{- $list := list "apple" "banana" "cherry" -}}
{{ $list | join ", " }} // Output: apple, banana, cherrytrunc
The function truncates the provided string to a maximum specified length. If the length is negative, it removes the specified number of characters from the beginning of the string.
Signature
Trunc(count int, str string) string{{ "Hello World" | trunc 5 }} // Output: Hello
{{ "Hello World" | trunc -5 }} // Output: Worldshuffle
The function randomly rearranges the characters in the provided string, producing a shuffled version of the original string.
Signature
Shuffle(str string) string{{ "hello" | shuffle }} // Output(will be different): "loleh"ellipsis
The function truncates a string to a specified maximum width and appends an ellipsis ("...") if the string exceeds that width.
Signature
Ellipsis(maxWidth int, str string) string{{ "Hello World" | ellipsis 10 }} // Output: Hello W...ellipsisBoth
The function truncates a string from both ends, preserving the middle portion and adding ellipses ("...") to both ends if the string exceeds the specified length.
Signature
EllipsisBoth(offset int, maxWidth int, str string) string{{ "Hello World" | ellipsisBoth 1 10 }} // Output: ...ello...initials
The function extracts initials from a string, optionally using specified delimiters to identify word boundaries.
Signature
Initials(str string) string{{ "John Doe" | initials }} // Output: JDplural
The function returns a specified string ('one') if the count is 1; otherwise, it returns an alternative string ('many').
Signature
Plural(one, many string, count int) string{{ 1 | plural "apple" "apples" }} // Output: apple
{{ 2 | plural "apple" "apples" }} // Output: appleswrap
The function breaks a string into lines, ensuring that each line does not exceed a specified maximum length. It avoids splitting words across lines unless absolutely necessary.
Signature
Wrap(length int, str string) string{{ "This is a long string that needs to be wrapped." | wrap 10 }}
// Output: This is a\nlong\nstring\nthat needs\nto be\nwrapped.wrapWith
The function breaks a string into lines with a specified maximum length, using a custom newline character to separate the lines. It only wraps words when they exceed the maximum line length.
Signature
WrapWith(length int, newLineCharacter string, str string) string{{ "This is a long string that needs to be wrapped." | wrapWith 10 "<br>" }}
// Output: This is a<br>long<br>string<br>that needs<br>to be<br>wrapped.quote
The function wraps each element in a provided list with double quotes and separates them with spaces.
Signature
Quote(elements ...any) string{{- $list := list "hello" "world" 123 -}}
{{ $list | quote }}
// Output(human readable): "hello" "world" "123"squote
The function wraps each element in the provided list with single quotes and separates them with spaces.
Signature
Squote(elements ...any) string{{- $list := list "hello" "world" 123 -}}
{{ $list | squote }}
// Output(human readable): 'hello' 'world' '123'toCamelCase
Converts a string to camelCase format.
Signature
ToCamelCase(str string) string{{ "hello world" | toCamelCase }} // Output: helloWorldtoKebabCase
Converts a string to kebab-case format.
Signature
ToKebabCase(str string) string{{ "hello world" | toKebabCase }} // Output: hello-worldtoPascalCase
Converts a string to PascalCase format.
Signature
ToPascalCase(str string) string{{ "hello world" | toPascalCase }} // Output: HelloWorldtoDotCase
Converts a string to dot.case format.
Signature
ToDotCase(str string) string{{ "hello world" | toDotCase }} // Output: hello.worldtoPathCase
Converts a string to path/case format.
Signature
ToPathCase(str string) string{{ "hello world" | toPathCase }} // Output: hello/worldtoConstantCase
Converts a string to CONSTANT_CASE format.
Signature
ToConstantCase(str string) string{{ "hello world" | toConstantCase }} // Output: HELLO_WORLDtoSnakeCase
Converts a string to snake_case format.
Signature
ToSnakeCase(str string) string{{ "hello world" | toSnakeCase }} // Output: hello_worldtoTitleCase
Converts a string to Title Case format.
Signature
ToTitleCase(str string) string{{ "hello world" | toTitleCase }} // Output: Hello Worlduntitle
Converts the first letter of each word in a string to lowercase.
Signature
Untitle(str string) string{{ "Hello World" | untitle }} // Output: hello worldswapCase
Switches the case of each letter in a string, converting lowercase to uppercase and vice versa.
Signature
SwapCase(str string) string{{ "Hello World" | swapCase }} // Output: hELLO wORLDcapitalize
Uppercases the first letter of a string while leaving the rest of the string unchanged.
Signature
capitalize(str string) string{{ "hello world" | capitalize }} // Output: Hello world
{{ "123boo_bar" | capitalize }} // Output: 123Boo_bar
{{ " Fe bar" | capitalize }} // Output: " Fe bar"uncapitalize
Lowercases the first letter of a string while leaving the rest of the string unchanged.
Signature
uncapitalize(str string) string{{ "Hello World" | uncapitalize }} // Output: hello World
{{ "123Boo_bar" | uncapitalize }} // Output: 123boo_bar
{{ " Fe bar" | uncapitalize }} // Output: " fe bar"split
Divides a string into a map of parts based on a specified separator, returning a collection of the split components.
Signature
Split(sep, orig string) map[string]string{{ "apple,banana,cherry" | split "," }}
// Output: map[_0:apple _1:banana _2:cherry]splitn
Splits a string into a specified number of parts using a separator, returning a map with up to n elements.
Signature
Splitn(sep string, n int, orig string) map[string]string{{ "apple,banana,cherry" | splitn "," 2 }}
// Output: map[_0:apple _1:banana,cherry]substr
Extracts a portion of a string based on given start and end positions, with support for negative indices to count from the end.
Signature
Substring(start int, end int, str string) string{{ "Hello World" | substr 0 5 }} // Output: Helloindent
Adds spaces to the beginning of each line in a string, effectively indenting the text.
Signature
Indent(spaces int, str string) string{{ "Hello\nWorld" | indent 4 }} // Output: " Hello\n World"nindent
Similar to Indent, but also adds a newline before the indented lines.
Signature
Nindent(spaces int, str string) string{{ "Hello\nWorld" | nindent 4 }} // Output: \n Hello\n Worldseq
Generates a sequence of numbers as a string, allowing for customizable start, end, and step values, similar to the Unix seq command.
Signature
Seq(params ...int) string{{ seq 1 2 10 }} // Output: 1 3 5 7 9
{{ seq 3 -3 2 }} // Output: 3
{{ seq }} // Output: ""
{{ seq 0 4 }} // Output: 0 1 2 3 4
{{ seq -5 }} // Output: 1 0 -1 -2 -3 -4 -5
{{ seq 0 -4 }} // Output: 0 -1 -2 -3 -4Last updated