Modifikace čárových kódů
Last modified by Martin Mahr on 2024/10/21 22:15
Regulární výraz pro modifikaci čárových kódů.
- Čárové kódy je možné nyní upravovat v nastavení pomocí regulárního výrazu
- Nastavení na zařízení: BARCODE_MODIFIER_REGEX_PATTERN
- Regulární výraz musí obsahovat alespoň jednu dvojici kulatých závorek (tzv. grupa), ve které se nachází hledaná část čárového kódu.
- Př. (\d+) - vyberou se všechna čísla
- Pozor! Regulární výraz musí být napsán tak, aby vybíral správné sekvence ze zadaného vstupu, ne obraceně (tedy že by ignoroval nějaké sekvence) → Proto musí obsahovat alespoň jednu grupu. ´
- Pozor na mezery před a za, které je možné vložit do pole a následně uložit. Děje se tak například při kopírování regulárního výrazu z tohoto dokumentu.
Regulární výrazy
- Výchozí hodnota: (.*) - naupravuje čárový kód
- Odstranění počátečních nul: ^0*(\d+)$
- Odstranění lomítka (resp. speciálních znaků): (\d+)\/?(\d+) - znak '/' může být nahrazen za jiný
- Odstranění počátečních nul a lomítka : ^0*(\d+)\/?(\d+)
- Odstranění nul ze začátku a odstranění kontrolních číslic: [0]{2}([1-9]{1}[0-9]{8})[\\d]{1}|[0]{3}([1-9]{1}[0-9]{7})[\\d]{1}|[0]{1}([1-9]{1}[0-9]{5})[\\d]{1}|(.*)
- pokud má čárový kód délku 12 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
- pokud má čárový kód délku 11 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
- pokud má čárový kód délku 8 znaků, tak ze začátku odstraní nulu a odebere kontrolní číslici
- pokud nevyhovuje ničemu, vrací původní řetězec
- Můžou se definovat čárové kódy s doplněním prefixu, suffixu do prostřed řetězce
- oddělovač regulárního výrazu a způsobu náhrady je paragraf §
- (91)39[0]*([0-9]*)§$11C$2
- kulaté závorky specifikují skupinu
- $ a číslo skupiny reprezentuje reálnou hodnotu v dané skupině
- je pak možné sekládat výsledný řetězec včetně proházení pořadí dat
- předchozí příklad vygeneruje: 911C6551
Konkrétní výrazy pro některé instance
Plzeň
- ([\d\w]+)[\/\-]?([\d\w]+) - maže znaky lomítka a pomlčky. Nechává čísla a písmena (písmena používají v Plzeňských kartách).
TSK - Trenčín
- [0]{2}([\d]{9})[\d]{1} - Pokud je čárový kód 12 znaků a začíná dvěma nulami, tak je ořízne a odstraní kontrolní číslici. Jejich čtečky u těchto EAN13 kódů automaticky odřezávají první nulu - reálně jsou 3 nuly, čtečka vrátí pouze 2.
TSK - Povážská knižnica
- [0]*([\d]*) - ruzny počet nul na začátku čárového kódu, bez kontrolní číslice
ŠAVS
- problémové kódy: "° žš+áí" - je potřeba se zbavit mezer
- INC_NUMBER_MODIFIER_REGEX_PATTERN nastaveno na ^\s*(\d+)$
- BARCODE_MODIFIER_REGEX_PATTERN nastaveno na ^\s*(\d+)$
Starlib
- [0]{1}([\d]{10})[\d]{1} - Problémové kódy 039410319006 - odtržení nuly na začátku a odtržení kontrolní číslice.
Měk Znojmo nebo Měk Třebíč
- [0]{5}([\d]{6})[\d]{1}|(.*) - knihy mají u nich 000000187352 a skenery to čtou 000001873528, tedy je potřeba oříznout 5 nul a kontrolní číslici
Testování
- Pro testování regulárního výrazu existuje v záložce 'Systém' testovací blok, ve kterém jsou definované používané čárové kódy (EAN13, EAN8 ..) + je možné zadat vlastní čárové kódy (oddělené středníkem) pro testování.
- Je třeba otestovat na celé množině možných čárových kódů.
Kde se používá?
- Výpůjčky
- Čárový kód
- Složený čárový kód
- Čtenářské číslo
- Servisní katalog
- Záložka "Č. kód/Přír. č"
- Kombinované vyhledávání → vyhledávání podle čárového kódu