Text Functions
Functions for formatting text values. These are commonly used in the labeling and popup profiles.
Concatenate
Concatenate(values, separator?, format?) -> Text
Concatenates values together and returns a text value.
Parameters
- values: Array<Text> - An array of text values to concatenate.
- separator (Optional): Text - Separator to use for concatenation if
values
parameter is an array. Or text to concatenate, if a single value is provided for the first parameter. If not provided will be empty. - format (Optional): Text - Formatting text for dates or numbers. This parameter is available in Arcade version 1.3 and later.
Possible values:
0
: Digit#
: Digit, omitting leading/trailing zerosD
: Day of the month, not padded (1 - 31)DD
: Day of the month, padded (01 - 31)DDD
: Ordinal day of the year (1 - 365)d
: Day of the week (1 - 7)ddd
: Abbreviated day of the week (e.g. Mon)dddd
: Full day of the week (e.g. Monday)M
: Month number (1 - 12)MM
: Month number, padded (01 - 12)MMM
: Abbreviated month name (e.g. Jan)MMMM
: Full month name (e.g. January)m
: Minutes, not padded (0 - 59)mm
: Minutes, padded (00 - 59)Y
: Full yearYY
: Two-digit yearh
: Civilian hours, not padded (0 - 12)hh
: Civilian hours, padded (00 - 12)H
: Military hours, not padded (0 - 24)HH
: Military hours, padded (00 - 24)s
: Seconds, not padded (0 - 59)ss
: Seconds, padded (00 - 59)
Return value: Text
Example
prints 'red/blue/green'
Concatenate(['red', 'blue', 'green'], '/')
Find
Find(searchText, targetText, startPosition?) -> Number
Finds a string of characters within a text value. Wildcards are NOT supported. A returned value of -1
indicates no results were found.
Parameters
- searchText: Text - The character string to search for.
- targetText: Text - The text to search.
- startPosition (Optional): Number - The zero-based index of the character in the text to search from.
Return value: Number
Example
prints 6
Find('380', 'Esri, 380 New York Street', 0)
FromCharCode
FromCharCode(charCode1, [charCode2, ..., charCodeN]?) -> Text
Returns a text value created from a sequence of UTF-16 character codes.
Parameters
- charCode1: Number - A number representing UTF-16 code units. Each unit has a range of 0-65535.
- [charCode2, ..., charCodeN] (Optional): Number - A sequence of numbers representing UTF-16 code units. Each unit has a range of 0-65535.
Return value: Text
Examples
The following example returns 'XYZ'
FromCharCode(88,89,90)
// returns 'XYZ'
The following example returns '🌉'
FromCharCode(55356, 57097)
// returns '🌉'
FromCodePoint
FromCodePoint(codePoint1, [codePoint2, ..., codePoint1N]?) -> Text
Returns a text value created from a sequence of UTF-32 code points.
Parameters
- codePoint1: Number - A code point.
- [codePoint2, ..., codePoint1N] (Optional): Number - A list of code points
Return value: Text
Examples
The following example returns 'XYZ'
FromCodePoint(88,89,90)
// returns 'XYZ'
The following example returns '🌉'
FromCodePoint(127753)
// returns '🌉'
Left
Left(value, charCount) -> Text
Returns the specified number of characters from the beginning of a text value.
Parameters
- value: Text - The value from which to get characters.
- charCount: Number - The number of characters to get from the beginning of the text.
Return value: Text
Example
prints 'the'
Left('the quick brown fox', 3)
Lower
Lower(inputText) -> Text
Makes a text value lower case.
Parameter
- inputText: Text - The text to be made lowercase.
Return value: Text
Example
prints 'hello'
Lower('HELLO')
Mid
Mid(value, startPosition, charCount) -> Text
Gets a number of characters from the middle of a text value.
Parameters
- value: Text - The value from which to get characters. If the value is not of type Text, the value is first converted to Text.
- startPosition: Number - The starting position from which to get the text. 0 is the first position.
- charCount: Number - The number of characters to extract.
Return value: Text
Example
prints 'quick'
Mid('the quick brown fox', 4, 5)
Proper
Proper(inputText, applyToText) -> Text
Converts a text value to title case. By default, the beginning of every word is capitalized. The option firstword
will capitalize only the first word.
Parameters
- inputText: Text - The text to convert to title case.
- applyToText: Text - A text value specifying the type of capitalization to be performed. By default every word is capitalized. This parameter accepts one of two values:
everyword
orfirstword
.
Return value: Text
Example
prints 'The Quick Brown Fox'
Proper('the quick brown fox', 'everyword')
Replace
Replace(value, searchText, replacementText, allOccurrences?) -> Text
Replaces a string within a text value. Defaults to replacing all occurrences.
Parameters
- value: Text - The text in which to make replacements.
- searchText: Text - The text to search for.
- replacementText: Text - The replacement text.
- allOccurrences (Optional): Boolean - Indicates if all occurrences of the
searchText
should be replaced in the text. Defaults totrue
.
Return value: Text
Example
prints 'the quick red fox'
Replace('the quick brown fox', 'brown', 'red')
Right
Right(value, charCount) -> Text
Returns the specified number of characters from the end of a text value.
Parameters
- value: Text - The text from which to get characters.
- charCount: Number - The number of characters to get from the end of the text value.
Return value: Text
Example
prints 'fox'
Right('the quick brown fox', 3)
Split
Split(inputText, separatorText, limit?, removeEmpty?) -> Array<Text>
Splits a text value into an array.
Parameters
- inputText: Text - The text value to be split.
- separatorText: Text - The separator used to split the text.
- limit (Optional): Number - An integer that specifies the number of splits. The default is
-1
, which indicates an unlimited number of splits. - removeEmpty (Optional): Boolean - Indicates whether to remove empty values. By default this is
false
.
Examples
returns '[red,green]'
Split('red,green,blue,orange', ',', 2)
Splits the paragraph at each space an unlimited number of times. Returns an array of the words in the paragraph.
Split(paragraph, ' ', -1, true)
Text
Text(value, format?) -> Text
Converts its argument into a string and optionally formats it. Returns null
if it fails.
Parameters
- value: Any - A value to be converted to a string (e.g. date, number or other type). When a date is provided, this function assumes the date/time object is in UTC and automatically converts the value to the local time of the client executing the expression. If the date/time value returned from the database already represents local time, then you should use the
toUTC
function to avoid applying an extra offset. - format (Optional): Text - Formatting string for dates or numbers.
Possible values:
0
: Digit#
: Digit, omitting leading/trailing zerosD
: Day of the month, not padded (1 - 31)DD
: Day of the month, padded (01 - 31)DDD
: Ordinal day of the year (1 - 365)d
: Day of the week (1 - 7)ddd
: Abbreviated day of the week (e.g. Mon)dddd
: Full day of the week (e.g. Monday)M
: Month number (1 - 12)MM
: Month number, padded (01 - 12)MMM
: Abbreviated month name (e.g. Jan)MMMM
: Full month name (e.g. January)m
: Minutes, not padded (0 - 59)mm
: Minutes, padded (00 - 59)Y
: Full yearYY
: Two-digit yearh
: Civilian hours, not padded (0 - 12)hh
: Civilian hours, padded (00 - 12)H
: Military hours, not padded (0 - 24)HH
: Military hours, padded (00 - 24)s
: Seconds, not padded (0 - 59)ss
: Seconds, padded (00 - 59)
Return value: Text
Examples
Pad the number to the left of the decimal
Text(123, '0000') // '0123'
Restrict the number to the left of the decimal
Text(123, '00') // '23'
Group the number by thousands
Text(1234, '#,###') // '1,234'
Round the number to two decimal places
Text(12345678.123, '#,###.00') // '12,345,678.12'
Format number as currency
Text(1234.55, '$#,###.00') // '$1,234.55'
Round the number to two decimal places
Text(1.236, '#.00') // '1.24'
Maintain significant digits and group by thousands
Text(1234.5678, '#,##0.00#') // '1,234.568'
Format the number and format positive/negative - if there is a negative subpattern, it serves only to specify the negative prefix and suffix
Text(-2, 'Floor #;Basement #') // 'Basement 2'
Text(2, 'Floor #;Basement #') // 'Floor 2'
Multiply by 100 and format as percentage
Text(0.3, '#%') // '30%'
Format date and time at the moment. eg 'Tuesday, October 25, 2016 @ 08:43:11'
Text(Now(), 'dddd, MMMM D, Y @ h:m:s')
Date stored in the datetime
field already represents local time, but Arcade assumes it is UTC. Offsets the local time to UTC to avoid applying the timezone offset twice.
Text(ToUTC($feature.datetime), 'dddd, MMMM D, Y @ h:m:s')
ToCharCode
ToCharCode(inputText, index?) -> Number
Returns a number between 0 and 65535 representing the UTF-16 code unit at the given index. Invalid halves of surrogate pairs are automatically removed.
Parameters
- inputText: Text - The text from which to get a UTF-16 code unit value.
- index (Optional): Number - An integer with a value of at least 0 and no greater than the number of characters of
inputText
. By default, this value is 0.
Return value: Number
Examples
The following example returns 88, the Unicode value for X.
ToCharCode('XYZ')
// returns 88
The following example returns 89, the Unicode value for Y.
ToCharCode('XYZ', 1)
// returns 89
The following example returns 65535.
ToCharCode('\uFFFF\uFFFE')
// returns 65535
The following example returns 55356.
ToCharCode('🌉')
// returns 55356
The following example returns 57097.
ToCharCode('🌉', 1)
// returns 57097
ToCodePoint
ToCodePoint(inputText, position?) -> Number
Returns a non-negative number representing the UTF-32 code point value of the input text. If indexed into the first half of a surrogate pair, the whole code point is returned. If indexed into the second half of the pair, this function returns the value of the second half. If a large code isn't a valid character, the function returns only the value of the half it indexes into.
Parameters
- inputText: Text - The text from which to get a UTF-32 code point value.
- position (Optional): Number - Position of a character in
inputText
from which to return the code point value. By default this value is 0.
Return value: Number
Examples
The following example returns 88, the Unicode value for X.
ToCodePoint('XYZ')
// returns 88
The following example returns 89, the Unicode value for Y.
ToCodePoint('XYZ', 1)
// returns 89
The following example returns 127753.
ToCodePoint('🌉')
// returns 127753
The following example returns 57097.
ToCodePoint('🌉', 1)
// returns 57097
Trim
Trim(inputText) -> Text
Removes spaces from the beginning or end of an input text value.
Parameter
- inputText: Text - The text to be trimmed.
Return value: Text
Example
prints 'hello world'
Trim(' hello world')
Upper
Upper(inputText) -> Text
Makes text upper case.
Parameter
- inputText: Text - The text value to be made uppercase.
Return value: Text
Example
prints 'HELLO'
Upper('Hello')
UrlEncode
UrlEncode(textOrDictionary) -> Text
Encodes a URL by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character.
Parameter
- textOrDictionary: Text | Dictionary - The URL to be encoded.
Return value: Text
Example
Encodes the URL provided
var urlsource ='arcgis-survey123://?';
var params = {
itemID:'36ff9e8c13e042a58cfce4ad87f55d19',
center: '43.567,-117.380'
};
return urlsource + UrlEncode(params);
//arcgis-survey123://?center=43.567%2C-117.380&itemID=36ff9e8c13e042a58cfce4ad87f55d19