eqmac-quests/lua_modules/string_ext.lua
2023-07-24 13:24:37 -07:00

39 lines
1,012 B
Lua

function string:case_insensitive_pattern()
local p = self:gsub("(%%?)(.)", function(percent, letter)
if percent ~= "" or not letter:match("%a") then
return percent .. letter;
else
return string.format("[%s%s]", letter:lower(), letter:upper());
end
end);
return p;
end
function string:findi(pattern, init, plain)
if(init ~= nil and plain ~= nil) then
return self:find(pattern:case_insensitive_pattern(), init, plain);
else
return self:find(pattern:case_insensitive_pattern());
end
end
function string:gmatchi(pattern)
return self:gmatch(pattern:case_insensitive_pattern());
end
function string:gsubi(pattern, replace, n)
if(n ~= nil) then
return self:gsub(pattern:case_insensitive_pattern(), replace, n);
else
return self:gsub(pattern:case_insensitive_pattern(), replace);
end
end
function string:matchi(pattern, init)
if(init ~= nil) then
return self:match(pattern:case_insensitive_pattern(), init);
else
return self:match(pattern:case_insensitive_pattern());
end
end