Skip to content

Instantly share code, notes, and snippets.

@kgriffs
Created May 27, 2020 17:41
Show Gist options
  • Save kgriffs/124aae3ac80eefe57199451b823c24ec to your computer and use it in GitHub Desktop.
Save kgriffs/124aae3ac80eefe57199451b823c24ec to your computer and use it in GitHub Desktop.
Lua string utilities (contains, startswith, endswith, replace, insert)
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment