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%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:
[]
eckigen Klammern aufzulisten. C-F
, V-Y
). Anderswo ist es nicht vorteilhaft, Bereiche hinzuzufügen, da es die Regex nicht verkürzt. 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
ausprobierenLaut 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
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}/
Tags und Links javascript regex street-address