mirror of
https://github.com/EQMacEmu/quests
synced 2026-08-21 00:23:04 -04:00
39 lines
1,012 B
Lua
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
|
|
|