Module:Sandbox/Matroc/Str swap

local p = {}

function p.swapreplace(frame) local a_string = frame.args[1] or "" if a_string == nil or a_string == "" then error("Missing string on which to perform swap!") end

local noofargs = 0 for i = 1, 10, 1 do         if frame.args[i] ~= nil then noofargs = i          end -- END if        end -- END for

if noofargs ~= 4 then error("Incorrect number of arguments: " .. noofargs .. " Required = 4!") end -- END if

local nooftimes = tonumber(frame.args[4])

if nooftimes == nil then nooftimes = 1 elseif nooftimes == "" then nooftimes = 1 elseif nooftimes <= 0 then nooftimes = 1 end

local swap = frame.args[2] or ""

if swap == nil then swap = "" end

if swap == "" then error("Missing String to Swap!") end

local swapwith = frame.args[3] or ""

if swapwith == nil then swapwith = "" end

if swapwith == "" then error("Missing String to Swap with!") end

a_string = (a_string:gsub(swap,"@2@2" .. swap .. "@2@2", nooftimes)) a_string = (a_string:gsub(swapwith,"@3@3" .. swapwith .. "@3@3", nooftimes)) a_string = (a_string:gsub("@3@3" .. swapwith .. "@3@3", swap, nooftimes)) a_string = (a_string:gsub("@2@2" .. swap .. "@2@2", swapwith, nooftimes))

return a_string

end

return p