String Filters
String filters are used to manipulate strings i.e. textual data.
Each section below represents a built-in filter.
- abbreviate
- base64decode
- base64encode
- capitalize
- default
- escapeChar
- lower
- replace
- sha256
- startsWith
- slugify
- substringAfter
- substringAfterLast
- substringBefore
- substringBeforeLast
- title
- trim
- upper
- urldecode
- urlencode
abbreviate
The abbreviate
filter will abbreviate a string using an ellipsis. It takes one argument which is the max
width of the desired output including the length of the ellipsis.
{{ "this is a long sentence." | abbreviate(7) }}
The above example will output the following:
this...
Arguments
- length
base64decode
The base64decode
filter takes the given input, base64-decodes it, and returns the byte array converted to UTF-8 string.
Applying the filter on an incorrect base64-encoded string will throw an exception.
{{ "dGVzdA==" | base64decode }}
The above example will output the following:
test
base64encode
The base64encode
filter takes the given input, converts it to an UTF-8 String (.toString()
) and Base64-encodes it.
{{ "test" | base64encode }}
The above example will output the following:
dGVzdA==
capitalize
The capitalize
filter will capitalize the first letter of the string.
{{ "article title" | capitalize }}
The above example will output the following:
Article title
title
The title
filter will capitalize the first letter of each word.
{{ "article title" | title }}
The above example will output the following:
Article Title
default
The default
filter will render a default value if and only if the object being filtered is empty.
A variable is empty if it is null, an empty string, an empty collection, or an empty map.
{{ user.phoneNumber | default("No phone number") }}
In the following example, if foo
, bar
, or baz
are null the output will become an empty string which is a perfect use case for the default filter:
{{ foo.bar.baz | default("No baz") }}
Note that the default filter will suppress any AttributeNotFoundException
exceptions that will usually be thrown.
Arguments
- default
escapeChar
The escapeChar
filter sanitizes given string using a selected string escape sequence.
Precede every '
character with \
:
{{ "Can't be here" | escapeChar('single') }}
{# results in: Can\'t be here #}
Precede every "
character with \
:
{{ '"Quoted"' | escapeChar('double') }}
{# results in: \"Quoted\" #}
Safely pass a rendered Pebble variable as literal value to a shell, replacing every '
character with the '\''
escape sequence:
{# inputs.param value set to: Can't be here #}
echo '{{ inputs.param | escapeChar('shell') }}'
{# results in: echo 'Can'\''t be here' #}
Arguments
type
: escape sequence typesingle
,double
, orshell
lower
The lower
filter makes an entire string lower case.
{{ "THIS IS A LOUD SENTENCE" | lower }}
The above example will output the following:
this is a loud sentence
replace
The replace
filter formats a given string by replacing the placeholders (placeholders are free-form) or using regular expression:
{{ "I like %this% and %that%." | replace({'%this%': foo, '%that%': "bar"}) }}
{{ 'aa1bb2cc3dd4ee5' | replace({'(\d)': '-$1-'}, regexp=true) }}
Arguments
replace_pairs
: an object with key the search string and value the replace stringregexp
: use regexp for search and replace pattern (default isfalse
)
sha256
The sha256
filter returns the SHA-256 hash of the given UTF-8 String.
{{ "test" | sha256 }}
The above example will output the following:
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
startsWith
The startsWith()
filter returns true
if the input string starts with the specified prefix. This filter is useful for string comparisons and conditional logic in your workflows.
id: compare_strings
namespace: company.team
inputs:
- id: myvalue
type: STRING
defaults: "hello world!"
tasks:
- id: log_true
type: io.kestra.plugin.core.log.Log
message: "{{ inputs.myvalue | startsWith('hello') }}"
- id: log_false
type: io.kestra.plugin.core.log.Log
message: "{{ inputs.myvalue | startsWith('Hello') }}"
slugify
The slugify
filter removes non-word characters (alphanumerics and underscores) and converts spaces to hyphen. Also strips leading and trailing whitespace.
{{ "Joel is a slug" | slugify }}
{# will output 'joel-is-a-slug' #}
substringAfter
The substringAfter
filter returns the substring before the first occurrence of a separator. The separator is not returned.
{{ 'a.b.c' | substringAfter('.') }}
{# results in: 'b.c' #}
Arguments
separator
: the string to search for
substringAfterLast
The substringAfterLast
filter returns the substring after the last occurrence of a separator. The separator is not returned.
{{ 'a.b.c' | substringAfterLast('.') }}
{# results in: 'c' #}
Arguments
separator
: the string to search for
substringBefore
The substringBefore
filter returns the substring before the first occurrence of a separator. The separator is not returned.
{{ 'a.b.c' | substringBefore('.') }}
{# results in: 'a' #}
Arguments
separator
: the string to search for
substringBeforeLast
The substringBeforeLast
filter returns the substring before the last occurrence of a separator. The separator is not returned.
{{ 'a.b.c' | substringBeforeLast('.') }}
{# results in: 'a.b' #}
Arguments
separator
: the string to search for
trim
The trim
filter is used to trim whitespace off the beginning and end of a string.
{{ " This text has too much whitespace. " | trim }}
The above example will output the following:
This text has too much whitespace.
upper
The upper
filter makes an entire string upper case.
{{ "this is a quiet sentence." | upper }}
The above example will output the following:
THIS IS A QUIET SENTENCE.
urldecode
The urldecode
translates a string into application/x-www-form-urlencoded
format using the "UTF-8" encoding scheme.
{{ "The+string+%C3%BC%40foo-bar" | urldecode }}
The above example will output the following:
The string ü@foo-bar
urlencode
The urlencode
translates a string into application/x-www-form-urlencoded
format using the "UTF-8" encoding scheme.
{{ "The string ü@foo-bar" | urlencode }}
The above example will output the following:
The+string+%C3%BC%40foo-bar
Was this page helpful?