Ik heb de volgende regular expression in JavaScript gevonden om Nederlandse postcodes te kunnen valideren:


/^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i;


Nu wil ik dit graag ombouwen zodat de laatste 2 letters niet verplicht zijn, maar als ze er dan wel zijn, mag het niet "SA", "SD" of "SS" zijn.
zip codes en postcodes zijn verschillende zaken. Afzonderlijk opslaan en controleren is beter. Wat als je ooit internationaal werkt.
Er zijn niet altijd zipcodes dan

Ik controleer via een piclist met http://www.geonames.org


Werkt niet onder htpps :(
Hoi Jan, bedankt voor je reactie. Ik begrijp je punt, echter wil ik toch nog weten hoe je dit in regular expressions zou kunnen oplossen. Heb er zelf al een tijdje aan gesleuteld maar kom er niet uit. Dus als iemand ideeën heeft, welkom!
Kwestie van de spatie en de twee letters groeperen met haakjes en die groep optioneel maken met een vraagteken:

/^[1-9][0-9]{3}(\s?(?!sa|sd|ss)[a-z]{2})?$/i

Nog iets beter is het om er met ?: een non-capturing group van te maken, omdat je in dit geval geen gebruik gaat maken van backreferences:

/^[1-9][0-9]{3}(?:\s?(?!sa|sd|ss)[a-z]{2})?$/i

Ten opzichte van je oorspronkelijke regex heb ik de spatie veranderd in een \s. Om verschillende redenen is het gebruik van spaties in reguliere expressies niet handig/aanbevolen.

Reageren