Handle extended GND IDs (like 4114170-2 Fenster (Motiv))

Close #46
This commit is contained in:
2025-12-03 14:54:03 +01:00
parent 59aba25d0e
commit 3d8dac9910
2 changed files with 7 additions and 0 deletions

View File

@@ -438,6 +438,11 @@ enum MDNodaRepository implements MDValueEnumInterface, JsonSerializable {
$id = strtr($id, $toRemove);
}
// Handle extended IDs (like "4114170-2 (Fenster (Motiv)")
if (str_contains($id, '(')) {
$id = trim(explode('(', $id)[0]);
}
// There is an issue with this regex
if (preg_match("/^[0-9-X]*$/", $id) === false) {
return false;

View File

@@ -36,6 +36,8 @@ final class MDNodaRepositoryTest extends TestCase {
self::assertEquals("1037602218", MDNodaRepository::gnd->validateId("https://explore.gnd.network/gnd/1037602218"));
self::assertEquals("102423008", MDNodaRepository::gnd->validateId("102423008"));
self::assertEquals("102423008", MDNodaRepository::gnd->validateId("102423008,"));
self::assertEquals("4114170-2", MDNodaRepository::gnd->validateId("4114170-2"));
self::assertEquals("4114170-2", MDNodaRepository::gnd->validateId("4114170-2 (Fenster (Motiv)"));
self::assertEquals(false, MDNodaRepository::gnd->validateId("fkld;s102423008"));
// NDL (Japan)