Janet 1.38.0-73334f3 Documentation
(Other Versions: 1.37.1 1.36.0 1.35.0 1.34.0 1.31.0 1.29.1 1.28.0 1.27.0 1.26.0 1.25.1 1.24.0 1.23.0 1.22.0 1.21.0 1.20.0 1.19.0 1.18.1 1.17.1 1.16.1 1.15.0 1.13.1 1.12.2 1.11.1 1.10.1 1.9.1 1.8.1 1.7.0 1.6.0 1.5.1 1.5.0 1.4.0 1.3.1 )

String Module

Index

string/ascii-lower string/ascii-upper string/bytes string/check-set string/find string/find-all string/format string/from-bytes string/has-prefix? string/has-suffix? string/join string/repeat string/replace string/replace-all string/reverse string/slice string/split string/trim string/triml string/trimr


string/ascii-lower cfunction source
(string/ascii-lower str)

Returns a new string where all bytes are replaced with the lowercase version of themselves in ASCII. Does only a very simple case check, meaning no unicode support.
Community Examples

string/ascii-upper cfunction source
(string/ascii-upper str)

Returns a new string where all bytes are replaced with the uppercase version of themselves in ASCII. Does only a very simple case check, meaning no unicode support.
Community Examples

string/bytes cfunction source
(string/bytes str)

Returns a tuple of integers that are the byte values of the string.
Community Examples

string/check-set cfunction source
(string/check-set set str)

Checks that the string `str` only contains bytes that appear in the string `set`. Returns true if all bytes in `str` appear in `set`, false if some bytes in `str` do not appear in `set`.
Community Examples

string/find cfunction source
(string/find patt str &opt start-index)

Searches for the first instance of pattern `patt` in string `str`. Returns the index of the first character in `patt` if found, otherwise returns nil.
Community Examples

string/find-all cfunction source
(string/find-all patt str &opt start-index)

Searches for all instances of pattern `patt` in string `str`. Returns an array of all indices of found patterns. Overlapping instances of the pattern are counted individually, meaning a byte in `str` may contribute to multiple found patterns.
Community Examples

string/format cfunction source
(string/format format & values)

Similar to C's `snprintf`, but specialized for operating with Janet values. Returns a new string.

The following conversion specifiers are supported, where the upper case specifiers generate upper case output:
- `c`: ASCII character.
- `d`, `i`: integer, formatted as a decimal number.
- `x`, `X`: integer, formatted as a hexadecimal number.
- `o`: integer, formatted as an octal number.
- `f`, `F`: floating point number, formatted as a decimal number.
- `e`, `E`: floating point number, formatted in scientific notation.
- `g`, `G`: floating point number, formatted in its shortest form.
- `a`, `A`: floating point number, formatted as a hexadecimal number.
- `s`: formatted as a string, precision indicates padding and maximum length.
- `t`: emit the type of the given value.
- `v`: format with (describe x)
- `V`: format with (string x)
- `j`: format to jdn (Janet data notation).

The following conversion specifiers are used for "pretty-printing", where the upper-case variants generate colored output. These specifiers can take a precision argument to specify the maximum nesting depth to print.
- `p`, `P`: pretty format, truncating if necessary
- `m`, `M`: pretty format without truncating.
- `q`, `Q`: pretty format on one line, truncating if necessary.
- `n`, `N`: pretty format on one line without truncation.
Community Examples

string/from-bytes cfunction source
(string/from-bytes & byte-vals)

Creates a string from integer parameters with byte values. All integers will be coerced to the range of 1 byte 0-255.
Community Examples

string/has-prefix? cfunction source
(string/has-prefix? pfx str)

Tests whether `str` starts with `pfx`.
Community Examples

string/has-suffix? cfunction source
(string/has-suffix? sfx str)

Tests whether `str` ends with `sfx`.
Community Examples

string/join cfunction source
(string/join parts &opt sep)

Joins an array of strings into one string, optionally separated by a separator string `sep`.
Community Examples

string/repeat cfunction source
(string/repeat bytes n)

Returns a string that is `n` copies of `bytes` concatenated.
Community Examples

string/replace cfunction source
(string/replace patt subst str)

Replace the first occurrence of `patt` with `subst` in the string `str`. If `subst` is a function, it will be called with `patt` only if a match is found, and should return the actual replacement text to use. Will return the new string if `patt` is found, otherwise returns `str`.
Community Examples

string/replace-all cfunction source
(string/replace-all patt subst str)

Replace all instances of `patt` with `subst` in the string `str`. Overlapping matches will not be counted, only the first match in such a span will be replaced. If `subst` is a function, it will be called with `patt` once for each match, and should return the actual replacement text to use. Will return the new string if `patt` is found, otherwise returns `str`.
Community Examples

string/reverse cfunction source
(string/reverse str)

Returns a string that is the reversed version of `str`.
Community Examples

string/slice cfunction source
(string/slice bytes &opt start end)

Returns a substring from a byte sequence. The substring is from index `start` inclusive to index `end`, exclusive. All indexing is from 0. `start` and `end` can also be negative to indicate indexing from the end of the string. Note that if `start` is negative it is exclusive, and if `end` is negative it is inclusive, to allow a full negative slice range.
Community Examples

string/split cfunction source
(string/split delim str &opt start limit)

Splits a string `str` with delimiter `delim` and returns an array of substrings. The substrings will not contain the delimiter `delim`. If `delim` is not found, the returned array will have one element. Will start searching for `delim` at the index `start` (if provided), and return up to a maximum of `limit` results (if provided).
EXAMPLES
# substrings split by delimiter
(string/split "," "x,y,z") # -> @["x" "y" "z"]

# delimiter not found so result has one element
(string/split "!" "1 2 3") # -> @["1 2 3"]

# start searching part-way through
(string/split "," "a,e,i,o" 3) # -> @["a,e" "i" "o"]

# limit number of results
(string/split ";" "a;b;c;d;e" 0 3) # -> @["a" "b" "c;d;e"]

# delimiter should be non-empty
(string/split "" "word") # -> error: expected non-empty pattern

Community Examples

string/trim cfunction source
(string/trim str &opt set)

Trim leading and trailing whitespace from a byte sequence. If the argument `set` is provided, consider only characters in `set` to be whitespace.
EXAMPLES
# trim leading and trailing whitespace
(string/trim "  foo ") # -> "foo"

# default whitespace includes " \t\r\n\v\f"
(string/trim "\t bar\n\r\f") # -> "bar"

# provide custom set of characters to trim
(string/trim "_.foo_bar. \n" " ._\n") # -> "foo_bar"
Community Examples

string/triml cfunction source
(string/triml str &opt set)

Trim leading whitespace from a byte sequence. If the argument `set` is provided, consider only characters in `set` to be whitespace.
EXAMPLES
# trim leading/left side whitespace
(string/triml "  foo ") # -> "foo "

# default whitespace includes " \t\r\n\v\f"
(string/triml "\t bar\n\r\f") # -> "bar\n\r\f"

# provide custom set of characters to triml
(string/triml "_.foo_bar. \n" " ._\n") # -> "foo_bar. \n"
Community Examples

string/trimr cfunction source
(string/trimr str &opt set)

Trim trailing whitespace from a byte sequence. If the argument `set` is provided, consider only characters in `set` to be whitespace.
EXAMPLES
# trim trailing/right side whitespace
(string/trimr "  foo ") # -> "  foo"

# default whitespace includes " \t\r\n\v\f"
(string/trimr "\t bar\n\r\f") # -> "\t bar"

# provide custom set of characters to trimr
(string/trimr "_.foo_bar. \n" " ._\n") # -> "_.foo_bar"
Community Examples