Geavanceerde modus (regex-transformatie)
Pasnummer, gebruikersnaam of geboortedatum uit Microsoft aanpassen voordat ze in EduDisplay worden opgeslagen.
📋 Overzicht
Bij Microsoft Gebruikers Sync kiest u per veld welk Microsoft-veld (Entra) de UID, gebruikersnaam of geboortedatum bevat. Soms staat die waarde in Microsoft net anders dan op de pas of in Zermelo: extra tekst ervoor (prefix), extra nullen, tekst eromheen of een ander scheidingsteken.
Met Geavanceerde modus op Gebruikersbeheer → Microsoft Sync kunt u per veld een regex (zoekpatroon) en optioneel een vervanging instellen. EduDisplay past dat toe bij elke sync, voordat de waarde wordt opgeslagen.
Wanneer gebruiken?
- • Het juiste veld is gevonden, maar de waarde moet worden ingekort, extra tekens moeten weg, of de volgorde moet anders
- • Microsoft bevat extra tekst rond het nummer (bijv.
UID:123456) en u wilt alleen de cijfers - • Extra nullen vooraan moeten weg, of een vaste tekst vóór het nummer (prefix) moet worden verwijderd
- • De geboortedatum staat als tekst in een extra Microsoft-veld (extension attribute), niet in het standaard geboortedatumveld
⚙️ Werking
| Regex | Vervanging | Wat gebeurt er |
|---|---|---|
| leeg | — | Niets wijzigen (standaard) |
| ingevuld | leeg | Deel overnemen: het eerste stuk tussen haakjes (...), anders de hele gevonden tekst |
| ingevuld | ingevuld | Tekst vervangen: de gevonden tekst wordt vervangen; in de vervanging mag u $1, $2, … gebruiken voor de stukken tussen haakjes |
Vindt de regex niets in de oorspronkelijke waarde, dan blijft die waarde staan. Alleen een lege bronwaarde of een lege uitkomst na de aanpassing telt als leeg. Probeer patronen eerst met de regex-test hieronder, voordat u ze opslaat.
🧪 Regex-test
Vul een voorbeeldwaarde uit Microsoft in en test uw regex. Het resultaat werkt hetzelfde als bij de echte Microsoft-sync.
Resultaat
- Modus
- —
- Waarde na aanpassing
- —
- Opgeslagen in EduDisplay
- —
🪪 UID — veelvoorkomende situaties
De UID moet hetzelfde zijn als wat de paslezer uitleest. Onderstaande voorbeelden komen regelmatig voor bij scholen en pasleveranciers.
Extra nullen vooraan weghalen
Microsoft: 0012345678 → 12345678; zonder extra nullen (23984729) blijft de waarde hetzelfde.
Regex: ^0+(\d+)$ · Vervanging: leeg of $1
Vaste tekst vóór het nummer verwijderen (prefix)
Microsoft: CARD:04A1B2C3 of UID:1234567890
Regex: ^(?:CARD|UID):(.+)$ · Vervanging: leeg
Hex-waarde met 0x ervoor (prefix)
Microsoft: 0x04A1B2C3D4 — paslezer zonder 0x
Regex: (?i)^0x([0-9A-F]+)$ · Vervanging: leeg
Alleen cijfers uit gemengde tekst
Microsoft: Badge 1234567890 of Pasnr=1234567890;FAC=1
Regex: (\d{6,}) of Pasnr=(\d+) · Vervanging: leeg
Alleen de laatste cijfers (gebouwcode + pasnummer)
Microsoft: 1234567890123456 — de pas gebruikt alleen de laatste 8 cijfers
Regex: (\d{8})$ · Vervanging: leeg
Scheidingsteken (komma, streepje, puntkomma)
Microsoft: 123,4567890 — u wilt het deel na de komma
Regex: ^\d+[,\-;](.+)$ · Vervanging: leeg
Tekst ná het nummer weghalen
Microsoft: ABCDEF01;TYPE=STUDENT
Regex: ^([^;]+) · Vervanging: leeg — of vervanging $1
Hoofdletters of kleine letters
Microsoft: abc123def — paslezer: hoofdletters
Regex: deze modus zet letters niet om naar hoofdletters. Pas de waarde in Microsoft aan, of test of de paslezer hoofd- en kleine letters hetzelfde behandelt.
👤 Gebruikersnaam — veelvoorkomende situaties
Standaard gebruikt EduDisplay het deel vóór de @ in het UPN/e-mailadres (UPN-fallback).
Geavanceerde modus is nodig als de gebruikersnaam uit een ander attribuut komt en daar nog bewerking nodig is.
Leerlingnummer met vaste letter
Entra employeeId: S123456 — Zermelo: 123456
Regex: ^S(\d+)$ · Vervanging: leeg
Leading zeros op leerlingnummer
Entra: 0012345 — Zermelo: 12345
Regex: ^0+(\d+)$ · Vervanging: leeg
E-mailadres in extra Microsoft-veld (extension attribute) — alleen het deel vóór @
Extension attribute: [email protected]
Regex: ^([^@]+)@ · Vervanging: leeg — of ^([^@]+)
Vaste tekst vóór de gebruikerscode (prefix)
Entra: STU-2024-12345 — gewenst: 12345
Regex: ^STU-\d+-(\d+)$ · Vervanging: leeg
Alleen cijfers uit displayName-achtige waarde
Entra: Jan Jansen (123456)
Regex: \((\d+)\) · Vervanging: leeg
Substitutie: domein suffix verwijderen
Entra: 12345.school.local
Regex: ^(\d+)\..+$ · Vervanging: $1
📅 Geboortedatum — veelvoorkomende situaties
Na transformatie moet de waarde parsebaar zijn als datum (YYYY-MM-DD, ISO met T, of dd-mm-jjjj).
Staat de datum in Entra in een andere volgorde of met een tweecijferig jaar (14-05-20), gebruik regex + vervanging om eerst naar een ondersteund formaat te gaan.
ISO jjjj-mm-dd (werkt vaak zonder regex)
Entra: 2014-05-20 — opgeslagen als 20-05-2014
Regex: leeg · Vervanging: leeg — EduDisplay herkent YYYY-MM-DD direct. Alleen regex nodig als u expliciet naar dd-mm-jjjj als tussenstap wilt (zie volgende voorbeeld).
ISO-volgorde omzetten naar dd-mm-jjjj
Entra: 2014-05-20 — gewenst vóór parsing: 20-05-2014
Regex: ^(\d{4})-(\d{2})-(\d{2})$ · Vervanging: $3-$2-$1
Tweecijferig jaar (dd-mm-jj)
Entra: 14-05-20 — bedoeld als 14 mei 2020 → 14-05-2020
Regex: ^(\d{2})-(\d{2})-(\d{2})$ · Vervanging: $1-$2-20$3 (jaar 20xx; pas 19 aan voor geboortejaren vóór 2000: $1-$2-19$3)
Amerikaanse volgorde mm-dd-jjjj
Entra: 05-20-2014 (20 mei 2014) → 20-05-2014
Regex: ^(\d{2})-(\d{2})-(\d{4})$ · Vervanging: $2-$1-$3
Datum in vrije tekst (extension attribute)
Extension attribute: Geboorte: 02-07-1991
Regex: (\d{2}-\d{2}-\d{4}) · Vervanging: leeg
ISO-datum met tijd
Entra: 1991-07-02T00:00:00Z
Regex: ^(\d{4}-\d{2}-\d{2}) · Vervanging: leeg
Schuine strepen → streepjes
Entra: 02/07/1991
Regex: ^(\d{2})/(\d{2})/(\d{4})$ · Vervanging: $1-$2-$3
Compact formaat yyyyMMdd
Entra: 19910702
Regex: ^(\d{4})(\d{2})(\d{2})$ · Vervanging: $3-$2-$1 voor dd-mm-jjjj, of $1-$2-$3 voor ISO
Gecombineerd veld (naam + datum)
Entra: Jansen;02-07-1991;Amsterdam
Regex: ;(\d{2}-\d{2}-\d{4}); · Vervanging: leeg
💡 Tips & valkuilen
- • Begin met één testgebruiker in Entra en een handmatige sync; controleer daarna het token in Gebruikersbeheer
- • Gebruik capture groups
(...)als u een deel van de string wilt behouden - • Anker waar nodig met
^en$zodat u niet per ongeluk een verkeerd deel matcht - • Vervanging ondersteunt
$1,$2, … (en ook Python-stijl\1,\2) - • In regex-placeholders gebruikt u gewoon
\d,\w, … — dubbele backslashes zijn niet nodig - • Ongeldige regex wordt geweigerd bij opslaan; matcht de regex niet, dan blijft de bronwaarde staan
- • Geavanceerde modus uit + opslaan wist alle regex-instellingen voor die tenant
- • Regex geldt niet op de UPN-fallback voor gebruikersnaam — alleen op het gekozen attribuut
Regex-test op deze pagina
Gebruik de regex-test hierboven. Die gebruikt dezelfde serverlogica als de sync, zodat u het opgeslagen resultaat direct ziet.