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: 001234567812345678; 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.

📧 Hulp nodig?

Hulp nodig bij een specifiek patroon? contact met ons op:

[email protected]