Modyfikacja kodów kreskowych
Ostatnio modyfikowane 2025/11/10 12:16 przez Jan Slezák
Wyrażenie regularne do modyfikacji kodów kreskowych
- Kody kreskowe można teraz edytować w ustawieniach za pomocą wyrażenia regularnego
- Ustawienia w urządzeniu: BARCODE_MODIFIER_REGEX_PATTERN
- Wyrażenie regularne musi zawierać co najmniej jedną parę nawiasów okrągłych (tzw. grupa), w której znajduje się poszukiwana część kodu kreskowego.
- Przykład: (\d+) – wybrane zostaną wszystkie cyfry
- Uwaga! Wyrażenie regularne musi być napisane w taki sposób, aby wybierało prawidłowe sekwencje z podanego wpisu, a nie odwrotnie (tj. ignorowało niektóre sekwencje) → Dlatego musi zawierać co najmniej jedną grupę. ´
- Należy zwrócić uwagę na spacje przed i po, które można wstawić w polu, a następnie zapisać. Dzieje się tak na przykład podczas kopiowania wyrażenia regularnego z tego doku
Wyrażenia regularne
- Wartość domyślna: (.*) – nie modyfikuje kodu kreskowego
- Usunięcie początkowych zer: ^0*(\d+)$
- Usunięcie ukośnika (lub znaków specjalnych): (\d+)\/?(\d+) - znak „/” można zastąpić innym
- Usunięcie początkowych zer i ukośnika: ^0*(\d+)\/?(\d+)
- Usunięcie zer na początku i usunięcie cyfr kontrolnych: [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}|(.* )
- jeśli kod kreskowy ma długość 12 znaków, usuwa z początku zera i cyfrę kontrolną
- jeśli kod kreskowy ma długość 11 znaków, usuwa z początku zera i cyfrę kontrolną
- jeśli kod kreskowy ma długość 8 znaków, usuwa z początku zero i cyfrę kontrolną
- jeśli nie spełnia żadnego z warunków, zwraca oryginalny ciąg znaków
- Można definiować kody kreskowe z dodaniem przedrostka lub przyrostka do środka ciągu znaków
- separatorem wyrażenia regularnego i sposobu zamiany jest paragraf §
- (91)39[0]*([0-9]*)§$11C$2
- okrągłe nawiasy określają grupę
- $ i numer grupy reprezentuje rzeczywistą wartość w danej grupie
- można następnie złożyć wynikowy ciąg znaków, w tym zamienić kolejność danych
- poprzedni przykład generuje: 911C6551
Konkretne wyrażenia dla niektórych instancji
Pilzno
- ([\d\w]+)[\/\-]?([\d\w]+) – usuwa znaki ukośnika i myślnika. Pozostawia cyfry i litery (litery używane w kartach pilzneńskich).
TSK - Trenčín
- [0]{2}([\d]{9})[\d]{1} – Jeśli kod kreskowy ma 12 znaków i zaczyna się od dwóch zer, to są one obcinane i usuwana jest cyfra kontrolna. Czytniki tych kodów EAN13 automatycznie obcinają pierwsze zero – w rzeczywistości są to 3 zera, ale czytnik zwraca tylko 2.
TSK - Povážská knižnica
- [0]*([\d]*) - różna liczba zer na początku kodu kreskowego, bez cyfry kontrolnej
ŠAVS
- problematyczne kody: „° žš+áí” – należy usunąć spacje
- INC_NUMBER_MODIFIER_REGEX_PATTERN ustawione na ^\s*(\d+)$
- BARCODE_MODIFIER_REGEX_PATTERN ustawione na ^\s*(\d+)$
Starlib
- [0]{1}([\d]{10})[\d]{1} - Problematyczne kody 039410319006 – odcięcie zera na początku i odcięcie cyfry kontrolnej.
Měk Znojmo albo Měk Třebíč
- [0]{5}([\d]{6})[\d]{1}|(.*) - książki mają u nich 000000187352, a skanery odczytują 000001873528, więc trzeba odciąć 5 zer i cyfrę kontrolną.
UNIZA
^0(\d{17}) - jeśli kod ma długość 18, to usuwa 0 na początku
Testowanie
- W celu przetestowania wyrażenia regularnego w zakładce „System” znajduje się blok testowy, w którym zdefiniowane są używane kody kreskowe (EAN13, EAN8 ...) + można wprowadzić własne kody kreskowe (oddzielone średnikiem) do przetestowania.
- Należy przetestować cały zestaw możliwych kodów kreskowych.
Gdzie się stosuje?
- Wypożyczenia
- Kod kreskowy
- Kod kreskowy złożony
- Numer czytelnika
- Katalog serwisowy
- Zakładka „Nr kodu/Nr przydziału”
- Wyszukiwanie łączone → wyszukiwanie według kodu kreskowego