Modul:ISBN

ISBN může být použit k ověření pravosti ISBN.

Použití

Modul od začátku zadaného textu projde všechny číslice a spojovníky, dokud nenarazí na jiný znak. Výsledek považuje za ISBN a pokusí se jej ověřit. Pokud ISBN nemá správný počet číslic, obsahuje i jiné znaky než číslice, spojovník, malé nebo velké x, anebo poslední číslice neodpovídá kontrolnímu součtu, vloží údržbovou kategorii Údržba:Články obsahující prapodivné ISBN.

{{#invoke:ISBN|check|isbn = 80-251-0210-6}}


local p = {}

function p.isValid(isbn)
	local digits = {}
	local isbn_len = 0
	local check = nil

	for i = 1, #isbn do
		local char = isbn:sub(i,i)
		if tonumber(char) then
			isbn_len = isbn_len + 1
			digits[isbn_len] = char
		elseif char:lower() == 'x' then
			isbn_len = isbn_len + 1
			check = 'X'
		elseif char ~= '-' then
			break
		end
	end

	if not check then
		check = digits[isbn_len]
		digits[isbn_len] = nil
	end

	if isbn_len == 10 then
		if check == 'X' then
			check = 10
		elseif not tonumber(check) then
			return false
		end

		local sum = 0
		for i, j in pairs(digits) do
			sum = (11-i)*j + sum
		end
		return ((sum + check) % 11) == 0
	elseif isbn_len == 13 then
		if not tonumber(check) then
			return false
		end

		local sum = 0
		for i, j in pairs(digits) do
			if (i % 2) == 0 then
				sum = 3*j + sum
			else
				sum = j + sum
			end
		end
		return ((sum + check) % 10) == 0
	end
	return false
end

function p.check(context)
	local a = require('Modul:Arguments')
	local params = a.getArgs(context)
	local isbn = params['isbn'] or params[1]

	if not p.isValid(isbn) then
		return '[[Kategorie:Údržba:Články obsahující prapodivné ISBN]]'
	end
	return nil
end

return p

Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Modul:ISBN
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.