More actions
created |
(No difference)
|
Revision as of 07:10, 30 May 2025
Adapted from https://gist.github.com/kgriffs/124aae3ac80eefe57199451b823c24ec
local string = getmetatable("")
function string:contains(sub)
return self:find(sub, 1, true) ~= nil
end
function string:startswith(start)
return self:sub(1, #start) == start
end
function string:endswith(ending)
return ending == "" or self:sub(-#ending) == ending
end
function string:replace(old, new)
local s = self
local search_start_idx = 1
while true do
local start_idx, end_idx = s:find(old, search_start_idx, true)
if (not start_idx) then
break
end
local postfix = s:sub(end_idx + 1)
s = s:sub(1, (start_idx - 1)) .. new .. postfix
search_start_idx = -1 * postfix:len()
end
return s
end
function string:insert(pos, text)
return self:sub(1, pos - 1) .. text .. self:sub(pos)
end
return