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.
| Situatie | Voorbeeld | Regex | Vervanging |
|---|---|---|---|
| Extra nullen vooraan weghalen | 0012345678 → 12345678. Zonder extra nullen (23984729) blijft de waarde hetzelfde. |
^0+(\d+)$ |
leeg of $1 |
| Vaste tekst vóór het nummer verwijderen (prefix) | CARD:04A1B2C3 of UID:1234567890 |
^(?:CARD|UID):(.+)$ |
leeg |
Hex-waarde met 0x ervoor (prefix) |
0x04A1B2C3D4 (paslezer zonder 0x) |
(?i)^0x([0-9A-F]+)$ |
leeg |
| Alleen cijfers uit gemengde tekst | Badge 1234567890 of Pasnr=1234567890;FAC=1 |
(\d{6,}) of Pasnr=(\d+) |
leeg |
| Alleen de laatste cijfers (gebouwcode + pasnummer) | 1234567890123456 (pas gebruikt de laatste 8 cijfers) |
(\d{8})$ |
leeg |
| Scheidingsteken (komma, streepje, puntkomma) | 123,4567890 (deel na de komma) |
^\d+[,\-;](.+)$ |
leeg |
| Tekst ná het nummer weghalen | ABCDEF01;TYPE=STUDENT |
^([^;]+) |
leeg of $1 |
| Hoofdletters of kleine letters | abc123def versus paslezer in hoofdletters. 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.
| Situatie | Voorbeeld | Regex | Vervanging |
|---|---|---|---|
| Leerlingnummer met vaste letter | Entra employeeId S123456 → Zermelo 123456 |
^S(\d+)$ |
leeg |
| Leading zeros op leerlingnummer | Entra 0012345 → Zermelo 12345 |
^0+(\d+)$ |
leeg |
| E-mail in extra Microsoft-veld (extension attribute), alleen het deel vóór @ | Extension attribute [email protected] |
^([^@]+)@ of ^([^@]+) |
leeg |
| Vaste tekst vóór de gebruikerscode (prefix) | Entra STU-2024-12345 → 12345 |
^STU-\d+-(\d+)$ |
leeg |
| Alleen cijfers uit displayName-achtige waarde | Entra Jan Jansen (123456) |
\((\d+)\) |
leeg |
| Substitutie: domein-suffix verwijderen | Entra 12345.school.local |
^(\d+)\..+$ |
$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.
| Situatie | Voorbeeld | Regex | Vervanging |
|---|---|---|---|
ISO jjjj-mm-dd (werkt vaak zonder regex) |
Entra 2014-05-20 wordt opgeslagen als 20-05-2014. EduDisplay herkent YYYY-MM-DD direct. Alleen regex nodig als u expliciet naar dd-mm-jjjj als tussenstap wilt (zie volgende rij). |
leeg | leeg |
ISO-volgorde omzetten naar dd-mm-jjjj |
Entra 2014-05-20, gewenst vóór parsing: 20-05-2014 |
^(\d{4})-(\d{2})-(\d{2})$ |
$3-$2-$1 |
Tweecijferig jaar (dd-mm-jj) |
Entra 14-05-20 (bedoeld als 14 mei 2020) → 14-05-2020. Jaar 20xx; voor geboortejaren vóór 2000: vervanging $1-$2-19$3 |
^(\d{2})-(\d{2})-(\d{2})$ |
$1-$2-20$3 |
Amerikaanse volgorde mm-dd-jjjj |
Entra 05-20-2014 (20 mei 2014) → 20-05-2014 |
^(\d{2})-(\d{2})-(\d{4})$ |
$2-$1-$3 |
| Datum in vrije tekst (extension attribute) | Extension attribute Geboorte: 02-07-1991 |
(\d{2}-\d{2}-\d{4}) |
leeg |
| ISO-datum met tijd | Entra 1991-07-02T00:00:00Z |
^(\d{4}-\d{2}-\d{2}) |
leeg |
| Schuine strepen naar streepjes | Entra 02/07/1991 |
^(\d{2})/(\d{2})/(\d{4})$ |
$1-$2-$3 |
| Compact formaat yyyyMMdd | Entra 19910702. Vervanging $3-$2-$1 voor dd-mm-jjjj, of $1-$2-$3 voor ISO |
^(\d{4})(\d{2})(\d{2})$ |
$3-$2-$1 |
| Gecombineerd veld (naam + datum) | Entra Jansen;02-07-1991;Amsterdam |
;(\d{2}-\d{2}-\d{4}); |
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.