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})$/;
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:
^
correspond au début de la chaîne[1-9][0-9]{3}
correspond à un seul chiffre différent de zéro et trois 0 à 9 chiffres?
correspond à 0 ou 1 espace (vous pouvez utiliser *
pour correspondre à 0 ou plusieurs espaces)(?!sa|sd|ss)
est un test lookahead pour vérifier que le reste n'est pas "sa", "sd" ou "ss".[a-z]{2}
correspond à 2 caractères a-z$
correspond à la fin de la chaînei
à la fin est le modificateur insensible à la casseVoici ma solution. Le i à la fin le rend insensible à la casse:
var rege = /^\d{4} ?[a-z]{2}$/i;
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.