Validierung für irischen Eircode

8

Ich frage mich, ob es eine Best Practice für die Validierung für das irische Eircode-Format gibt. Mein bisher bester Versuch, REGEX in JavaScript zu verwenden, basiert auf der offiziellen Spezifikation auf Seite 11 -edition3published.pdf? sfvrsn = 2 "> hier .

(Seite 11 basierend auf den Seitennummern im Dokument oder Seite 12, wenn Sie das Cover einschließen)

%Vor%

Ich habe hier keine Eircode-bezogenen Fragen gefunden, also dachte ich mir, ich würde diese öffnen und sehen, was andere Leute dachten und um zu sehen, welche besseren / kürzeren / effizienteren Muster jeder entwickeln könnte.

Bearbeiten: Entfernte Kommas gemäß @Asunez antworten.

%Vor%     
ConorLuddy 28.10.2015, 12:44
quelle

3 Antworten

8

Da @ Manwals Antwort nicht genau das tut, was es sollte, hier ist mein Versuch, die Regex für OP zu verkürzen:

^[AC-FHKNPRTV-Y]{1}[0-9]{1}[0-9W]{1}[ \-]?[0-9AC-FHKNPRTV-Y]{4}$

Dies ist im Grunde, was Ihre Regex ist, mit ein paar Änderungen:

  • Entfernte Kommas. Sie benötigen keine Kommas, um Elemente in [] eckigen Klammern aufzulisten.
  • Wo möglich, wurden Bereiche hinzugefügt, in denen Platz gespart werden konnte ( C-F , V-Y ). Anderswo ist es nicht vorteilhaft, Bereiche hinzuzufügen, da es die Regex nicht verkürzt.
  • Sie müssen nicht aus einem Raum entkommen. "" in Regex ist wörtlich.

Es ist auch möglich, D6W ausschließlich mit Lookbehind zu behandeln, aber das ist mehr eine Kunst als Regex.

Siehe Regex-Demo: hier

Sie können auch die Zeichenklasse in nicht umwandeln, die bestimmte Zeichen enthält, und obwohl es die Regex nicht verkürzt, ist es auch erwähnenswert. Sie müssen jedoch sicherstellen, dass andere Zeichen (wie Punkte, Kommas) ebenfalls nicht enthalten sind. Ich mache es, indem ich das Token \W hinzufüge.

Sie können es hier

ausprobieren     
Asunez 29.10.2015, 08:13
quelle
4

Diese Antwort wurde aktualisiert, wobei char B vermieden wurde. Sie können dies versuchen:

%Vor%

Beschreibung:

%Vor%     
Manwal 28.10.2015 12:48
quelle
4

Laut Produktleitfaden Kapitel 1.5.4 sind zulässige Zeichen:

%Vor%

Jeder Routing-Schlüssel muss Buchstaben und zwei Ziffern enthalten, mit Ausnahme von EINER spezifischen Situation, die D6W code ist.

Codes, die mit A5W , C6W , V0W verknüpft sind, sind daher ungültig.

Laut Kapitel 1.5.1 Recommendations for Storage and Presentation

  • Ein Eircode sollte immer als eine einzelne Zeichenfolge von sieben Großbuchstaben in gespeichert werden IT-Systeme, d.h. A65F4E2.
  • Ein Eircode sollte immer in Großbuchstaben als zwei durch ein Leerzeichen getrennte Teile dargestellt werden, auf stationären Postsendungen, Computerformularen usw., d. h. A65 F4E2 und niemals A65F4E2.

Codes, die in der Datenbank gespeichert sind, sollten nicht mit space oder dash getrennt werden, sondern nur getrennt von space und nur für die Anzeige.

Angenommen, korrekte Regex sollte wie folgt aussehen:

/([AC-FHKNPRTV-Y]\d{2}|D6W)[0-9AC-FHKNPRTV-Y]{4}/

Regex Online-Tester

Ericode Guide

    
kmike 25.11.2015 10:05
quelle