Modulo:String/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Moroboshi (discussione | contributi)
test isnumber
Riga 425:
]]
 
local function _collatestr.collate(source frame )
 
local collation = {
{ '[áàăắằẵẳâấầẫẩǎåǻäǟãȧǡąāảȁȃạặậḁⱥᶏᴂɐᶐɒ]' , 'a'},
{'[ÁÀĂẮẰẴẲÂẤẦẪẨǍÅÅǺÄǞÃȦǠĄĀẢȀȂẠẶẬḀȺᴁ]', 'A'},
Line 433 ⟶ 434:
{'[ćĉčċçḉȼƈ]', 'c'},
{'[ĆĈČĊÇḈȻƇ]', 'C'},
{'[đḍḓḏðđḍḓḏðď]', 'd'},
{'[ĐḌḒḎÐĐḌḒḎÐĎ]', 'D'},
{'[éèèêếềễểěëẽėȩḝęēḗḕẻȅȇẹệḙḛǝ]', 'e'},
{'[ÉÈÈÊẾỀỄỂĚËẼĖȨḜĘĒḖḔẺȄȆẸỆḘḚƎ]', 'E'},
Line 458 ⟶ 459:
{'[ÓÒŎÔỐỒỖỔǑÖȪŐÕṌṎȬȮȰØǾǪǬŌṒṐỎȌȎƠỚỜỠỞỢỌỘ]', 'O'},
{'[ṕṗ]', 'p'},
{'[ṕṗṔṖ]', 'P'},
{'[ŕřṙŗȑȓṛṝṟ]', 'r'},
{'[ŔŘṘŖȐȒṚṜṞ]', 'R'},
Line 476 ⟶ 477:
{'[ŹẐŽŻẒẔƵȤʐⱫ]', 'Z'},
}
 
local new_args = str._getParameters(frame.args, {'source'})
local source = new_args['source'] or ''
--local source = mw.ustring.toNFC(source)
 
for _, el in ipairs(collation) do
source = mw.ustring.gsub( source, el[1], el[2])
end
return source
Line 483 ⟶ 489:
 
--[[
Funzione per estrarre da un titolo la stringa adatta all'ordinamento alfabetico.
Funzione di interfaccia per _collate
]]
 
function str.collate( frame )
 
local new_args = str._getParameters(frame.args, {'source'})
local source = new_args['source'] or ''
--local source = mw.ustring.toNFC(source)
return _collate(source)
end
 
function str.titolo_alfa(frame)
Line 506 ⟶ 504:
end
source = mw.ustring.gsub(source, ' %(.*%)$', '')
source = _collatestr.collate( { args = { source } } )
source = mw.ustring.gsub(source, "^['%(%.¡¿ ]*", '')
for _,article in ipairs(articoli) do
Line 515 ⟶ 513:
return source
end
 
 
-- =================================================================
Line 809 ⟶ 808:
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.collateisnumber( frame )
local new_args = str._getParameters( frame.args, {'s'} );
local s = new_args['s'] or '';
s = mw.text.trim(s);
s = string.sub(s, ",", ".");
if tonumber(s) then
return s
end
return
end
 
--[[