mirror of
https://github.com/edubart/otclient.git
synced 2025-10-17 04:53:27 +02:00
Refactor for documentation
This commit is contained in:
47
modules/corelib/string.lua
Normal file
47
modules/corelib/string.lua
Normal file
@@ -0,0 +1,47 @@
|
||||
-- @docclass string
|
||||
|
||||
function string:split(delim)
|
||||
local start = 1
|
||||
local results = {}
|
||||
while true do
|
||||
local pos = string.find(self, delim, start, true)
|
||||
if not pos then
|
||||
break
|
||||
end
|
||||
table.insert(results, string.sub(self, start, pos-1))
|
||||
start = pos + string.len(delim)
|
||||
end
|
||||
table.insert(results, string.sub(self, start))
|
||||
table.removevalue(results, '')
|
||||
return results
|
||||
end
|
||||
|
||||
function string:starts(start)
|
||||
return string.sub(self, 1, #start) == start
|
||||
end
|
||||
|
||||
function string:trim()
|
||||
return string.match(self, '^%s*(.*%S)') or ''
|
||||
end
|
||||
|
||||
function string:explode(sep, limit)
|
||||
if(type(sep) ~= 'string' or tostring(self):len() == 0 or sep:len() == 0) then
|
||||
return {}
|
||||
end
|
||||
|
||||
local i, pos, tmp, t = 0, 1, "", {}
|
||||
for s, e in function() return string.find(self, sep, pos) end do
|
||||
tmp = self:sub(pos, s - 1):trim()
|
||||
table.insert(t, tmp)
|
||||
pos = e + 1
|
||||
|
||||
i = i + 1
|
||||
if(limit ~= nil and i == limit) then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
tmp = self:sub(pos):trim()
|
||||
table.insert(t, tmp)
|
||||
return t
|
||||
end
|
Reference in New Issue
Block a user