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