web-dev-qa-db-fra.com

Expression régulière pour le code postal néerlandais

J'essaie de créer une expression régulière en javascript pour valider un code postal néerlandais.

Le code postal doit contenir 4 chiffres, puis éventuellement un espace, puis 2 lettres (insensibles à la casse).

Valeurs valides:

1001aa  
1001Aa  
1001 AA

J'ai maintenant ceci, mais ça ne marche pas:

var rege = /^([0-9]{4}[ ]+[a-zA-Z]{2})$/;
15
Flo

Modifié pour ne traiter aucune exigence de 0 majuscule pour les codes postaux néerlandais et pour éliminer les correspondances pour SS, SA et SD. Cela devrait tout faire pour vous.

Regex final:

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

Test unitaire de violon: http://jsfiddle.net/hgU3u/

Voici une ventilation:

  1. ^ correspond au début de la chaîne
  2. [1-9][0-9]{3} correspond à un seul chiffre différent de zéro et trois 0 à 9 chiffres
  3. ? correspond à 0 ou 1 espace (vous pouvez utiliser * pour correspondre à 0 ou plusieurs espaces)
  4. (?!sa|sd|ss) est un test lookahead pour vérifier que le reste n'est pas "sa", "sd" ou "ss".
  5. [a-z]{2} correspond à 2 caractères a-z
  6. $ correspond à la fin de la chaîne
  7. i à la fin est le modificateur insensible à la casse
44
Steven Moseley

Voici ma solution. Le i à la fin le rend insensible à la casse:

var rege = /^\d{4} ?[a-z]{2}$/i;
5
sabof

Si vous rencontrez des difficultés pour l'utiliser comme modèle de validation d'amorçage, je vous suggère de le modifier en:

    ^[1-9][0-9]{3} ?(?!sa|sd|ss|SA|SD|SS)[A-Za-z]{2}$

De cette façon, il est toujours sensible à la casse et accepté par le validateur de bootstrap.

2
Ray