JstrJavaScript strings
val v : string -> tv s is the UTF-8 encoded OCaml string s as a JavaScript string.
val length : t -> intlength s is the length of s.
get s i is the Unicode character at position i in s. If this happens to be a lone low or any high surrogate surrogate, Uchar.rep is returned. Raises Invalid_argument if i is out of bounds.
val empty : tempty is an empty string.
val sp : tsp is Jstr.v " ".
val nl : tnl is Jstr.v "\n".
concat ?sep ss is the concatenates the list of strings ss inserting sep between each of them (defaults to empty).
pad_start ~pad n s is s with pad strings prepended to s until the length of the result is n or s if length s >= n. The first prepended pad may be truncated to satisfy the constraint. pad defaults to sp.
Warning. Since length is neither the number of Unicode characters of s nor its number of grapheme clusters, if you are using this for visual layout, it will fail in many cases. At least consider normalizing s to `NFC before.
pad_end ~pad n s is s with pad strings appended to s until the length of the result is n or s if length s >= n. The last appended pad may be truncated to satisfy the constraint. pad defaults to sp.
Warning. Since length is neither the number of Unicode characters of s nor its number of grapheme clusters, if you are using this for visual layout, it will fail in many cases. At least consider normalizing s to `NFC before.
find_sub ~start ~sub s is the start index (if any) of the first occurence of sub in s at or after start .
find_last_sub ~before ~sub s is the start index (if any) of the last occurence of sub in s before before (defaults to length
s).
slice ~start ~stop s is the string s.start, s.start+1, ... s.stop - 1. start defaults to 0 and stop to length s.
If start or stop are negative they are subtracted from length s. This means that -1 denotes the last character of the string.
sub ~start ~len s is the string s.start, ... s.start + len - 1. start default to 0 and len to length s - start.
If start is negative it is subtracted from length s. This means that -1 denotes the last character of the string. If len is negative it is treated as 0.
cuts sep s is the list of all (possibly empty) substrings of s that are delimited by matches of the non empty separator string sep.
fold_uchars f acc s folds f over the Unicode characters of s starting with acc. Decoding errors (that is unpaired UTF-16 surrogates) are reported as Uchar.rep.
fold_jstr_uchars is like fold_uchars but the characters are given as strings.
For more information on normalization consult a short introduction, the UAX #15 Unicode Normalization Forms and normalization charts.
The type for normalization forms.
`NFD normalization form D, canonical decomposition.`NFC normalization form C, canonical decomposition followed by canonical composition.`NFKD normalization form KD, compatibility decomposition.`NFKC normalization form KC, compatibility decomposition, followed by canonical composition.val normalized : normalization -> t -> tnormalized nf t is t normalized to nf.
For more information about case see the Unicode case mapping FAQ and the case mapping charts. Note that these algorithms are insensitive to language and context and may produce sub-par results for some users.
val is_empty : t -> boolis_empty s is true iff s is an empty string.
starts_with ~prefix s is true iff s starts with prefix (as per equal).
ends_with ~suffix s is true iff s ends with suffix (as per equal).
equal s0 s1 is true iff s0 and s1 are equal. Warning. Unless s0 and s1 are known to be in a particular normal form the test is textually meaningless.
compare s0 s1 is a total order on strings compatible with equal. Warning. The comparison is textually meaningless.
val of_char : char -> tof_char c is a string made of c.
val to_string : t -> stringto_string s is s as an UTF-8 encoded OCaml string.
val of_string : string -> tof_string s is the UTF-8 encoded OCaml string s as a JavaScript string.
val to_int : ?base:int -> t -> int optionto_int s is the integer resulting from parsing s as a number in base base (guessed by default). The function uses Number.parseInt and maps Float.nan results to None.
val of_int : ?base:int -> int -> tof_int ~base i formats i as a number in base base (defaults to 10). Conversion is performed via Number.toString.
val to_float : t -> floatto_float s is the floating point number resulting from parsing s. This always succeeds and returns Float.nan on unparseable inputs. The function uses Number.parseFloat.
val of_float : ?frac:int -> float -> tof_float ~frac n formats n with frac fixed fractional digits (or as needed if unspecified). This function uses Number.toFixed if f is specified and Number.toString otherwise.