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
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[]
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
local sig = Lib.String.Signature(json.encode(state))
if sig ~= lastSig then lastSig = sig; redraw() end