OPX//77
opx_lib

Lib.String

Last updated on

Trim, clean, split and fingerprint strings, measured in bytes.

Pure. No permission. Limits are in bytes; for characters use Lib.Text.

Lib.String.Trim

Whitespace off both ends.

Lib.String.Trim(value)

Parameters

  • value: any

Returns

  • string

Lib.String.Clean

Every control character replaced by a space, capped at limit bytes, ellipsis appended when cut. Use it on any value from the wire before it reaches a log, a chat line or a page (a newline would forge a log line). A non-string answers ''.

Lib.String.Clean(value, limit, ellipsis)

Parameters

  • value: any
  • limit?: integer
  • ellipsis?: string

Returns

  • string
Example
print('player said ' .. Lib.String.Clean(said, 120, '...'))

Lib.String.Split

Splits on a one-character separator; empty fields are kept.

Lib.String.Split(value, separator)

Parameters

  • value: any
  • separator: string

Returns

  • string[]
Example
local parts = Lib.String.Split('a,,b', ',') -- { 'a', '', 'b' }

Lib.String.Starts

Whether a string begins with a prefix.

Lib.String.Starts(value, prefix)

Parameters

  • value: any
  • prefix: string

Returns

  • boolean

Lib.String.Signature

A short stable hash (FNV-1a, 32-bit), for change detection. Not a checksum, never for security. A non-string answers 0.

Lib.String.Signature(value)

Parameters

  • value: any

Returns

  • integer
Example
local sig = Lib.String.Signature(json.encode(state))
if sig ~= lastSig then lastSig = sig; redraw() end

On this page