Zum Inhalt springen

Modul:Str: Unterschied zwischen den Versionen

2.609 Bytes hinzugefügt ,  24. Oktober 2015
K
1 Version importiert
K (1 Version)
K (1 Version importiert)
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 102: Zeile 102:
     end
     end


function escape_lua_regex(str)
return mw.ustring.gsub(str, ".", {
    ["%"] = "%%";
    ["^"] = "%^";
    ["$"] = "%$";
    ["."] = "%.";
    ["("] = "%(";
    [")"] = "%)";
    ["["] = "%[";
    ["]"] = "%]";
    ["?"] = "%?";
    ["*"] = "%*";
    ["+"] = "%+";
    ["-"] = "%-";
    ["\0"] = "%z";
  })
end
function Str.replace(frame)
local text = frame.args[1] or ""      -- Text, der bearbeitet werden soll
local search = frame.args[2] or ""    -- Textstellen innerhalb von "text" die ersetzt werden sollen
if text == "" or search == "" then return "" end
local replace = frame.args[3] or ""  -- Ersetzungstext
local count = tonumber(frame.args[4]) -- Anzahl der Ersetzungen (optional)
local regexsearch = frame.args[5]    -- beliebiger Wert um dafür zu sorgen, dass der Suchtext "search" als Lua-regulärer Ausdruck behandelt werden soll
if not regexsearch or regexsearch == "" then
search = escape_lua_regex(search)
replace = mw.ustring.gsub(replace, "%%", "%%%%")
end
local result
if count then
result,_ = mw.ustring.gsub(text, search, replace, count)
else
result,_ = mw.ustring.gsub(text, search, replace)
end
return result
end
-- richtet Zahlen numerisch aus
function Str.adjustnumber(frame)
local ausgabe;
local text  = frame.args[1] or ""      -- Text, der bearbeitet werden soll, i.d.R. eine Dezimalzahl
local i_li = math.floor(tonumber(frame.args[2])) or 2;    -- maximale Stellen links vom Trennzeichen
local i_re = math.floor(tonumber(frame.args[3])) or 2;    -- maximale Stellen rechts vom Trennzeichen
local sign  = frame.args['Z'] or ","  -- Trennzeichen
local zeroes='00000000000000000000';  -- 20 duerften ausreichen.
local zpos = 0;
local len =  mw.ustring.len(text);
if not text  or sign == "" then
zpos = len + 1;
else
zpos = mw.ustring.find(text, sign,1, true) or len;
end
local zl = 0;
local zr = 0;
local t_li = "";
local t_re = "";
local z_li ="";
local z_re ="";
if zpos > 1 then
t_li = mw.ustring.sub(text,1, zpos-1);
else
t_li="";
end
if len-zpos > 0 then
t_re = mw.ustring.sub(text,zpos+1,-1);
else
t_re="";
end
zl = i_li -  mw.ustring.len(t_li);
if zl < 1 then
zl = 0;
z_li = "";
else
z_li = '<span style="visibility:hidden;">' .. mw.ustring.sub(zeroes,1,zl) .. '</span>';
end
zr = i_re -  mw.ustring.len(t_re);
if zr < 1 then
zr = 0;
z_re ="";
else
z_re ='<span style="visibility:hidden;">' ..  mw.ustring.sub(zeroes,1,zr) .. '</span>';
end
ausgabe = z_li .. t_li  .. sign .. t_re .. z_re;
return ausgabe;
end
  return Str
  return Str
11.008

Bearbeitungen

Cookies helfen uns bei der Bereitstellung von Android Wiki. Durch die Nutzung von Android Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.