Module:str

Bonjour, vous êtes venu ici pour chercher la signification du mot Module:str. Dans DICTIOUS, vous trouverez non seulement toutes les significations du dictionnaire pour le mot Module:str, mais vous apprendrez également son étymologie, ses caractéristiques et comment dire Module:str au singulier et au pluriel. Tout ce que vous devez savoir sur le mot Module:str est ici. La définition du mot Module:str vous aidera à être plus précis et correct lorsque vous parlerez ou écrirez vos textes. Connaître la définition deModule:str, ainsi que celles d'autres mots, enrichit votre vocabulaire et vous fournit des ressources linguistiques plus nombreuses et de meilleure qualité.

 Documentation

Usage

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 :

codepoint(frame)
utilisé dans {{point de code}}.
find(frame)
utilisé dans {{str find}}.
format(frame)
utilisé dans {{printf}}.
gmatch(frame)
utilisé dans {{gmatch}}.
gsub(frame)
utilisé dans {{gsub}}.
len(frame)
utilisé dans {{str len}}.
non_latin(frame)
utilisé dans {{italique}}.
sans_balise(frame)
utilisé dans {{sans balise}}.
sub(frame)
utilisé dans {{str sub}}.
supprimer_p(frame)
utilisé dans {{supprimer p}}.
ucfirstall(frame)
utilisé dans {{ucfirstall}}.

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?", "&#32;\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