Modulo:String/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Moroboshi (discussione | contributi)
fix
Moroboshi (discussione | contributi)
Nessun oggetto della modifica
Riga 148:
 
]]
function str.match( frame )
return str._match(frame.args)
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );
end
 
--[[
Entry point per chiamata diretta da un modulo
]]
function str.isnumber_match( frameargs )
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );
local s = new_args['s'] or '';
local start = tonumber( new_args['start'] ) or 1;
Line 444 ⟶ 451:
{'[ĥȟḧḣḩħḥḫẖ]', 'h'},
{'[ĤȞḦḢḨĦḤḪ]', 'H'},
{'[íìĭîǐïḯĩįīỉȉȋịḭíìĭîǐïḯĩįīỉȉȋịḭı]', 'i'},
{'[ÍÌĬÎǏÏḮĨĮĪỈȈȊỊḬÍÌĬÎǏÏḮĨĮĪỈȈȊỊḬİ]', 'I'},
{'[ĵǰ]', 'j'},
{'[Ĵ]', 'J'},
Line 619 ⟶ 626:
pre: eventuale stringa che precede l'unione delle stringhe
post: eventuale stringa che segue l'unione delle stringhe
indentazione: una stringa da ripetere cumulativamente per ogni messaggio (tipicamente '&nbsp')
lista: se valorizzata a:
'puntata' imposta i parametri per una lista puntata
'ordinata' imposta i aprametriparametri per una lista ordinata
'infobox' imposta l'unione come una lista, eccetto che nel caso ci sia
solo un elemento
Line 663 ⟶ 671:
local index = tonumber(base_args.Nmin) or tonumber(base_args.nmin) or base_index
local Nobbligatori = tonumber(base_args.Nobbligatori) or tonumber(base_args.nobbligatori) or base_index-1
local indentazione = base_args.indentazione or nil
local args = frame:getParent().args
-- estraggo il primo valore
Line 695 ⟶ 704:
if #elements == 0 then return '' end
-- carico separatori, congiunzione, pre e postazione
local pre, post, separatore, congiunzione, indent = '', '', '', '', ''
local lista = base_args.lista or ''
if lista == 'puntata' or (lista =='infobox' and #elements >1) then
Line 712 ⟶ 721:
separatore = base_args.separatore or ''
congiunzione = base_args.congiunzione or separatore
end
if tonumber(s)indentazione then
local current_indentazione = indentazione
for i, msg in ipairs(elements) do
elements[i] = current_indentazione .. elements[i]
current_indentazione = ' ' .. indentazione
return send
end
return pre .. mw.text.listToText(elements, separatore, congiunzione) .. post
Line 808 ⟶ 824:
end
 
--[[
isnumber
 
Questa funzione ritorna la stringa passata se è un numbero, altrimenti ritorna una stringa vuota.
 
Uso:
{{#invoke:String|isnumber|source_string}}
O
{{#invoke:String|isnumber|s=source_string}}
 
Parametri
s: La stringa da testare
 
Evntuali spazi iniziali e finali saranno eliminati dalla stringa prima del controllo. Considera
sia il "." che la "," come separatori decimali
 
]]
function str.isnumber( frame )
local new_args = str._getParameters( frame.args, {'s'} );
local s = new_args['s'] or '';
s = mw.text.trim(s);
s = string.gsub(s, ",", ".");
if tonumber(s) then
return s
end
return
end
 
--[[