Modulo:CAS: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
←Nuova pagina: local p = {} local function check_CAS(cas_string) --Ritorna true se cas_string è un numero CAS valido. --cas_string deve essere una stringa di 6-10 cifre senza spazi ... |
nessun output se non viene fornito alcun CAS (anziché produrre un link errato e segnalarlo come non valido) |
||
(7 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1:
local p = {}
local dump = {}
local function check_CAS(cas_string)
--Ritorna true se cas_string è un numero CAS valido.
--cas_string deve essere una stringa di
if #cas_string<
return false
end
Riga 12 ⟶ 13:
local moltiplicatore = 0
local not_number = false
local reverse_cas =
for c in
cifra = tonumber(c)
if
not_number = true
else
somma = somma + moltiplicatore * cifra
end
moltiplicatore = moltiplicatore + 1
end
if not_number then return false end
if
return true
else
Riga 41 ⟶ 43:
-- unisco i parametri ordinali se più di uno
for _, sub_cas in ipairs(origArgs) do
args[#args+1] = mw.text.trim(sub_cas)
end
cas_string = table.concat(args)
--pulisco da eventuali trattini
cas_string = string.gsub(cas_string, '-', '')
--Alcuni template invocano questo modulo senza preventivamente controllare
--se sia stato fornito un CAS (manualmente o tramite Wikidata). Anziché
--considerarlo un errore, è più opportuno non emettere alcun output, in modo
--tale che sia a sua volta considerato un parametro assente.
if #cas_string == 0 then
return ''
end
--controllo se è un CAS valido
local check_result = check_CAS(cas_string)
Riga 52 ⟶ 61:
error_string = ''
if check_result then
CAS_formattato = cas_string:sub(1, -4) .. '-' .. cas_string:sub(-3, -2) .. '-' .. cas_string:sub(-1)
else
error_string = ' <strong class="error">numero CAS non valido</strong>'
Riga 59 ⟶ 68:
tostring(mw.uri.fullUrl('toollabs:magnustools/cas.php',
{['cas']=CAS_formattato, ['language']='it'})) .. ' ' ..
CAS_formattato .. ']</span></span>' .. error_string
return reply
end
|