2.8 KiB
title, description, weight, type
| title | description | weight | type |
|---|---|---|---|
| text | String conversion and manipulation | 10 | docs |
The text function is an intrinsic (always available, no use() needed). It is polymorphic — its behavior depends on the type of the first argument.
To split text into characters, use array(text) — see array.
From an Array
text(array, separator)
Join array elements into text with a separator (default: empty string).
text(["h", "e", "l", "l", "o"]) // "hello"
text([1, 2, 3], ", ") // "1, 2, 3"
text(["a", "b"], "-") // "a-b"
From a Number
text(number, radix)
Convert a number to text. Radix is 2-36 (default: 10).
text(255) // "255"
text(255, 16) // "ff"
text(255, 2) // "11111111"
From Text
text(text, from, to)
Extract a substring from index from to to. Negative indices count from end.
text("hello world", 0, 5) // "hello"
text("hello world", 6) // "world"
text("hello", -3) // "llo"
Methods
text.lower(text)
Convert to lowercase.
text.lower("HELLO") // "hello"
text.upper(text)
Convert to uppercase.
text.upper("hello") // "HELLO"
text.trim(text, reject)
Remove characters from both ends. Default removes whitespace.
text.trim(" hello ") // "hello"
text.trim("xxhelloxx", "x") // "hello"
text.search(text, target, from)
Find the position of target in text. Returns null if not found.
text.search("hello world", "world") // 6
text.search("hello world", "xyz") // null
text.search("hello hello", "hello", 1) // 6
text.replace(text, target, replacement, cap)
Replace occurrences of target with replacement. If cap is not specified, replaces all occurrences.
text.replace("hello", "l", "L") // "heLLo" (replaces all)
text.replace("hello", "l", "L", 1) // "heLlo" (replaces first only)
// With function
text.replace("hello", "l", function(match, pos) {
return pos == 2 ? "L" : match
}) // "heLLo" (replaces all by default)
text.format(text, collection, transformer)
Substitute {key} placeholders with values from a collection.
text.format("Hello, {name}!", {name: "World"})
// "Hello, World!"
text.format("{0} + {1} = {2}", [1, 2, 3])
// "1 + 2 = 3"
text.normalize(text)
Unicode normalize the text (NFC form).
text.normalize("cafe\u0301") // normalized form
text.codepoint(text)
Get the Unicode codepoint of the first character.
text.codepoint("A") // 65
text.extract(text, pattern, from, to)
Match a pattern and extract named groups.
text.extract("2024-01-15", /(\d+)-(\d+)-(\d+)/)
// Returns match info