Template Test Functions

Prev Next

Overview

Template tests provide an extensive list of functions that can be referenced within the template. Functions are grouped into the following categories:

  • Math Functions
  • String Functions
  • Array Functions
  • Control Logic
  • Conditions

Math Functions

Add - add

Adds two numbers.

#add (number) (number)
{{#add 2 2}}
4

Absolute - abs

Returns the absolute value of a number.

#abs (number)
{{#abs -32}}
32

Ceiling - ceiling

Rounds a number up to the nearest whole number.

#ceiling (number)
{{#ceiling 23.215}}
24

Divide - divide

Divides the first number by the second number.

#divide (number) (number)
{{#divide 144 12}}
12

Floor - floor

Rounds a number down to the nearest whole number.

#floor (number)
{{#floor 23.215}}
23

Modulo - mod

Modulus of first number over second number.

#mod (number) (number)
{{#mod 24 5}}
4

Multiply - multiply

Multiplies first number by second number.

#multiply (number) (number)
{{#multiply 6 3}}
18

Power - pow

Raises first number to the power of the second number.

#pow (number) (number)
{{#pow 3 3}}
27

Round - round

Rounds a number to the nearest whole number.

#round (number)
{{#round 48.5}}
49

Subtract - subtract

Subtracts second number from first number.

#subtract (number) (number)
{{#subtract 9 3}}
6

Square Root - sqrt

Returns the square root of a number.

#sqrt (number)
{{#sqrt 144}}
12

Increment - inc

Increment a number or return a default number if missing.

#inc (number) (number)
{{#inc 4}}
5

Decrement - dec

Decrement a number or return a default number if missing.

#dec (number) (number)
{{#dec 4}}
3

Counter - counter

Increment a counter by an offset. Accepts three optional arguments: starting_value, offset, and counter_key.

#counter (number) (number) (string)
{{#counter}} {{#counter 'counter2' 4}} {{#counter}} {{#counter 'counter2'}}
1 4 2 5

String Functions

Camelcase - camel

Converts a string to camelCase.

#camel (string)
{{#camel 'to be converted'}}
toBeConverted

Capitalize - capitalize

Capitalizes the first character of a string.

#capitalize (string)
{{#capitalize 'capitalize this sentence.'}}
Capitalize this sentence.

Concatenate - concat

Concatenates one or more strings together.

#concat (string) ... (string)
{{#concat 'foo' 'bar'}}
foobar

Contains - contains

Returns True if the specified string contains a specified substring.

#contains (string) (string)
{{#contains 'hello world' 'hello'}}
True

EndsWith - endswith

Returns True if a string ends with the specified substring.

#endswith (string) (string)
{{#endswith 'friend' 'end'}}
True

Format - format

Returns a string representation of a date with a specified format.

#format (date) (string)
{{#format '5/1/2021 6:32:06 PM' 'dddd, MMMM dd yyyy'}}
Saturday, May 01 2021

Join - join

Join multiple strings together with an optional delimiter.

#join (string[]) (string)
// array = ['one', 'two', 'three']

{{#join array '-'}}
one-two-three

Left - left

Extracts a specified number of characters from the beginning of a string.

#left (string) (number)
{{#left 'romeo' 4}}
rome

Length - length

Returns the length of the specified string.

#length (string)
{{#length 'beforehand'}}
10

Lowercase - lower

Converts a string to lowercase.

#lower (string)
{{#lower 'CUSTOMER_KEY'}}
customer_key

Match - match

Searches input string and returns index of first occurrence of the specified pattern, returns -1 if a match is not found.

#match (string) (string)
{{#match 'Area Code: 817' '\b\d\d\d\b'}}
11

Pascalcase - pascal

Converts a string to PascalCase.

#pascal (string)
{{#pascal 'high pressure'}}
HighPressure

Prepend - prepend

Prepends the second string to the beginning of the first string.

#prepend (string) (string)
{{#prepend 'day' 'Fri'}}
Friday

Remove - remove

Removes matching substrings within a string.

#remove (string) (string)
{{#remove 'th???e quic???k brown f???ox' '???'}}
the quick brown fox

Replace - replace

Replace matching substrings within a string with something else.

#replace (string) (string) (string)
{{#replace 'This docment uses docments to docment the docmentation' 'docment' 'document'}}
This document uses documents to document the documentation

Right - right

Extracts a specified number of characters from the end of a string.

#right (string) (number)
{{right 'tango' 2}}
go

Split - split

Splits a string into substrings based on a specified delimiter.

#split (string) (string)
{{#list (#split 'hello,hello,hello' ',')}}
'{{this}} world'
{{/list}}
'hello world','hello world','hello world'

StartsWith - startswith

Returns True if a string begins with the specified substring.

#startswith (string) (string)
{{#startswith 'prefix' 'pre'}}
True

Substring - substring

Extracts a substring from a string beginning at the specified index with an optional length.

#substring (string) (number) (number)
{{#substring 'foobar' 0 3}}
foo

Titlecase - title

Converts a string to Titlecase.

#title (string)
{{#title 'the very hungry caterpillar'}}
The Very Hungry Caterpillar

Trim - trim

Trim whitespace from the left and right side of a string.

#trim (string)
{{#trim '   lost in the middle   '}}
lost in the middle

TrimStart - trimstart

Trim whitespace from the left side of a string.

#trimstart (string)
{{#trimstart '       far from the beginning'}}
far from the beginning

TrimEnd - trimend

Trim whitespace from the right side of a string.

#trimend (string)
{{#trimend 'the end is miles away        '}}
the end is miles away

Truncate - truncate

Truncates a string to a specified number of characters.

#truncate (string) (number)
{{#truncate 'the quick brown fox jumps over the lazy dog' 19}}
the quick brown fox

Uppercase - upper

Converts a string to UPPERCASE.

#upper (string)
{{#upper 'from quiet to loud'}}
FROM QUIET TO LOUD

ParseJson - parsejson

Parses a JSON string.

#parsejson (string)
{{#parsejson '[1, 2, 3]'}}
[1 2 3]

Array Functions

Concatenate - concat

Concatenates one or more arrays together.

#concat (array) ... (array)
// array1 = ['1', '3', '5'];
// array2 = ['2', '4', '6']

{{#concat array1 array2 }}
['1', '3', '5', '2', '4', '6']

Length - length

Returns the length of the specified array.

#length (array)
// array = ['one', 'two', 'three']

{{#length array}}
3

Distinct - distinct

Removes duplicates from an array, keeping the order the same. The optional key_template argument is a Handlebars expression that defines the key for each object in the array.

#distinct (array) (string)
// array = [1, 2, 1, 3]

{{#distinct array}}
[1, 2, 3]

Sort - sort

Sorts an array. The optional key_template argument is a Handlebars expression that defines the key for each object in the array.

#sort (array) (string)
// array = [5, 4, 1, 3, 2]

{{#sort array}}
[1, 2, 3, 4, 5]

Includes - includes

Returns True if the array contains the specified value. The optional key_template argument is a Handlebars expression that defines the comparison value if the array contains objects.

#includes (array) (object) (string)
// array = [1, 2, 3]

{{#includes array 5}}
False

Map - map

Returns an array by applying a Handlebars expression to each object in the source array.

#map (array) (string)
// array = [{id: 1, value: 2},{id: 3, value: 4},{id: 5, value: 6}]

{{#map array '#add value 5'}}
[7, 9, 11]

Filter - filter

Filters a source array by items found in a second array. The optional key_template arguments are Handlebars expressions that are applied to each object in the corresponding arrays.

#filter (array) (array) (string) (string)
// array1 = [1, 2, 3]
// array2 = [2, 3, 4]

{{#filter array1 array2}}
[2, 3]

Except - except

Filters a source array by items not found in a second array. The optional key_template arguments are Handlebars expressions that are applied to each object in the corresponding arrays.

#except (array) (array) (string) (string)
// array1 = [1, 2, 3]
// array2 = [2, 3, 4]

{{#except array1 array2}}
[1]

Control Logic

If - if

Renders the enclosed block only if the condition is true. Supports additional 'else if' and 'else' blocks.

#if (boolean)
{{#if (eq 1 2)}}
foo
{{else if (eq 'this' 'that')}}
bar
{{else}}
foobar
{{~/if}}
foobar

List - list

Renders a collection of objects with a delimiter. Within a list block, the outer context can be accessed via the 'root' object.

#list (object[]) [string]
// array = ['reuse', 'recycle', 'pollute']
// prefix = 're'

{{#list array ','}}
{{#if (contains this root.prefix)}}
'{{this}}'
{{~/if}}
{{/list}}
'reuse','recycle'

Conditions

Not - not

Negates the value

#not (boolean)
{{#not True}}
False

Equals - eq

Returns True if two values are equal.

#eq (object) (object)
{{#eq (subtract 3 2) 1}}
True

NotEqual - ne

Returns True if two values are not equal.

#ne (object) (object)
{{#ne (add 3 2) 1}}
True

LessThan - lt

Returns True if the first value is less than the second value.

#lt (number) (number)
{{#lt 2 3}}
True

GreaterThan - gt

Returns True if the first value is greater than the second value.

#gt (number) (number)
{{#gt 2 3}}
False

LessThanOrEqual - lte

Returns True if the first value is less than or equal to the second value.

lte (number) (number)
{{#lte 2 3}}
True

GreaterThanOrEqual - gte

Returns True if the first value is greater than or equal to the second value.

#gte (number) (number)
{{#gte 2 3}}
False

And - and

Performs an AND operation on one or more boolean values.

#and (boolean) ... (boolean)
{{#and True False}}
False

Or - or

Performs an OR operation on one or more boolean values.

#or (boolean) ... (boolean)
{{#or True False}}
True