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[voir] [modifier] [historique] [purger]

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