Norwegian regex examples

Determining norwegian identification numbers for a person or a organization can be a neat feature in an organization. However it can be tricky if needing to cater also for norwegian D-number and H-Number.
The below regex are not perfect but can assist in identifying them:

Personnummer, H-nummer og D-nummer

^([0-9][1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))([0-9][1-9]|1[0-2])(\d{2})(\s?)(\d{5})$

Personnummer

^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])(\d{2})(.?)(\d{5})$

D-nummer
Fødselsdatoen modifiseres ved at det legges til 4 på det første sifferet:

^([1-9][1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])(\d{2})(\s?)(\d{5})$

H-nummer
Fødselsdatoen modifiseres ved at det legges til 4 på det tredje siffere

^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))([0-9][1-9]|1[0-2])(\d{2})(\s?)(\d{5})$

Organisation number

^[0-9][0-9][0-9][\s\.]?[0-9][0-9][0-9][\s\.]?[0-9][0-9][0-9]$

Phonenumber

^((0047)?|(+47)?)[1-9] ?\d ?\d ?\d ?\d ?\d ?\d ?\d$

References:
https://www.epinova.no/folg-med/blogg/2020/regex-huskeliste-for-norske-formater-i-episerver-forms/
https://jusleksikon.no/wiki/Fødselsnummer