Ce module permet d’employer les fonctions de la librairie Ustring de l’extension Scribunto.
Fonction utilisable dans un modèle ou dans une page :
{{point de code}}
.{{str find}}
.{{printf}}
.{{gmatch}}
.{{gsub}}
.{{str len}}
.{{italique}}
.{{sans balise}}
.{{str sub}}
.{{supprimer p}}
.{{ucfirstall}}
.La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Module:str/Documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
function p.len(frame)
local string = frame.args or ''
return mw.ustring.len(mw.text.trim(string))
end
function p.sub(frame)
local args = frame.args
local string = args or ''
local start = (tonumber(args) or 0) + 1
local length = tonumber(args) or 0
if length <= 0 then return ''
else
return mw.ustring.sub(mw.text.trim(string), start, start + length - 1)
end
end
function p.find(frame)
local args = frame.args
local first, last = mw.ustring.find(mw.text.trim(args), args, 1, true)
if first and first <= last then return first
else return ''
end
end
function p.char(frame)
return mw.ustring.char(frame.args)
end
function p.codepoint(frame)
local str = frame.args or ""
local format = frame.args or "%d"
str = mw.ustring.gsub(str, "(.)",
function (caractere)
return mw.ustring.format(format, mw.ustring.codepoint(caractere))
end)
return str
end
function p.gsub(frame)
local args
if frame.args then
args = frame.args
else
args = frame:getParent().args
end
if args and args then
local table = {}
local i = 3
repeat
table] = args
i = i + 2
until not (args and args)
-- étrangement, un chiffre dans une table ne marche pas avec mw.ustring.gsub
return (mw.ustring.gsub(args or "", args or "", function (x) return table end)) -- parenthèses nécessaires
else
return (mw.ustring.gsub(args or "", args or "", args or "")) -- parenthèses nécessaires
end
end
function p.gmatch(frame)
local str = ''
for pattern in mw.ustring.gmatch(frame.args, frame.args) do
str = str .. pattern
end
return str
end
function p.sans_balise(frame)
local str = frame.args or ""
str = mw.ustring.gsub(str, "<ruby->(.-)</ruby->",
function (chars)
chars = mw.ustring.gsub(chars, "<r->(.-)</r->", "")
return chars
end)
str = mw.ustring.gsub(str, "<*>", "")
str = mw.ustring.gsub(str, "'''?", "")
str = mw.ustring.gsub(str, "%%]",
function (chars)
chars = mw.ustring.gsub(chars, ".-%|", "")
return chars
end)
return str
end
function p.format(frame)
local format = frame.args or ""
-- au plus 4 valeurs maintenant
return mw.ustring.format(format, frame.args, frame.args, frame.args, frame.args)
end
function p.liste_de_domaines(frame)
local str = frame.args or ""
local ou = frame.args or ""
str = mw.ustring.gsub(str, "%)''(*)$", "%1")
str = mw.ustring.gsub(str, "%)''", ", ")
str = mw.ustring.gsub(str, "''%(", "")
if ou ~= "" then
str = mw.ustring.gsub(str, ", (*)$", " ou %1")
end
return "''(" .. str .. ")''"
end
function p.ucfirstall(frame)
local str = frame.args or ""
str = mw.ustring.gsub(str, "^%S", mw.ustring.upper)
str = mw.ustring.gsub(str, "%s%S", mw.ustring.upper)
return str
end
function p.supprimer_p(frame)
local str = frame.args or ""
str = mw.ustring.gsub(str, "^</?p>\n?", " \n")
str = mw.ustring.gsub(str, "</?p>", "<br />")
return str
end
function p.non_latin(frame)
local str = frame.args or ''
str = mw.text.decode(str, true)
str = mw.ustring.lower(mw.ustring.gsub(mw.ustring.toNFD(str), "", ""))
str = mw.ustring.gsub(str, "", "") -- U+0021-02FF, U+1E00-1EFF
return str
end
return p