Module:str
Usage
Ce module permet d’employer les fonctions de lalibrairie 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}}
.
Ladocumentationde cemoduleest générée par le modèle{{Documentation module}}.
Elle estinclusedepuis la pageModule:str/Documentation.Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable(créer).
Voir lesstatistiques d'appel depuis le wikicodesur l'outilwstatet lesappels depuis d'autres modules.
localp={}
functionp.len(frame)
localstring=frame.args[1]or''
returnmw.ustring.len(mw.text.trim(string))
end
functionp.sub(frame)
localargs=frame.args
localstring=args[1]or''
localstart=(tonumber(args[2])or0)+1
locallength=tonumber(args[3])or0
iflength<=0thenreturn''
else
returnmw.ustring.sub(mw.text.trim(string),start,start+length-1)
end
end
functionp.find(frame)
localargs=frame.args
localfirst,last=mw.ustring.find(mw.text.trim(args[1]),args[2],1,true)
iffirstandfirst<=lastthenreturnfirst
elsereturn''
end
end
functionp.char(frame)
returnmw.ustring.char(frame.args[1])
end
functionp.codepoint(frame)
localstr=frame.args[1]or""
localformat=frame.args["format"]or"%d"
str=mw.ustring.gsub(str,"(.)",
function(caractere)
returnmw.ustring.format(format,mw.ustring.codepoint(caractere))
end)
returnstr
end
functionp.gsub(frame)
localargs
ifframe.args["direct"]then
args=frame.args
else
args=frame:getParent().args
end
ifargs[3]andargs[4]then
localtable={}
locali=3
repeat
table[args[i]]=args[i+1]
i=i+2
untilnot(args[i]andargs[i+1])
-- étrangement, un chiffre dans une table ne marche pas avec mw.ustring.gsub
return(mw.ustring.gsub(args[1]or"",args[2]or"",function(x)returntable[x]end))-- parenthèses nécessaires
else
return(mw.ustring.gsub(args[1]or"",args[2]or"",args[3]or""))-- parenthèses nécessaires
end
end
functionp.gmatch(frame)
localstr=''
forpatterninmw.ustring.gmatch(frame.args[1],frame.args[2])do
str=str..pattern
end
returnstr
end
functionp.sans_balise(frame)
localstr=frame.args[1]or""
str=mw.ustring.gsub(str,"<ruby[^>]->(.-)</ruby[^>]->",
function(chars)
chars=mw.ustring.gsub(chars,"<r[tp][^>]->(.-)</r[tp][^>]->","")
returnchars
end)
str=mw.ustring.gsub(str,"<[^>]*>","")
str=mw.ustring.gsub(str,"'''?","")
str=mw.ustring.gsub(str,"%[%[(.-)%]%]",
function(chars)
chars=mw.ustring.gsub(chars,".-%|","")
returnchars
end)
returnstr
end
functionp.format(frame)
localformat=frame.args[1]or""
-- au plus 4 valeurs maintenant
returnmw.ustring.format(format,frame.args[2],frame.args[3],frame.args[4],frame.args[5])
end
functionp.liste_de_domaines(frame)
localstr=frame.args[1]or""
localou=frame.args["ou"]or""
str=mw.ustring.gsub(str,"%)''([^']*)$","%1")
str=mw.ustring.gsub(str,"%)''",",")
str=mw.ustring.gsub(str,"''%(","")
ifou~=""then
str=mw.ustring.gsub(str,",([^,]*)$","ou %1")
end
return"''("..str..")''"
end
functionp.ucfirstall(frame)
localstr=frame.args[1]or""
str=mw.ustring.gsub(str,"^%S",mw.ustring.upper)
str=mw.ustring.gsub(str,"%s%S",mw.ustring.upper)
returnstr
end
functionp.supprimer_p(frame)
localstr=frame.args[1]or""
str=mw.ustring.gsub(str,"^</?p>\n?"," \n")
str=mw.ustring.gsub(str,"</?p>","<br />")
returnstr
end
functionp.non_latin(frame)
localstr=frame.args[1]or''
str=mw.text.decode(str,true)
str=mw.ustring.lower(mw.ustring.gsub(mw.ustring.toNFD(str),"[^%w]",""))
str=mw.ustring.gsub(str,"[!-˿Ḁ-ỿ]","")-- U+0021-02FF, U+1E00-1EFF
returnstr
end
returnp