Länder Postleitzahl Validierung

Im Shopware Admin ist die Original Validierung der Postleitzahl für das Vereinigte Königreich mit 439 Zeichen leider viel zu lang. Es dürfen nur 255 Zeichen sein. Nachfolgend der Befehl. Kann mir jemand helfen, diese Zeichenkette auf die richtige Anzahl zur kürzen. Dankeschön

^GIR ?0AA$|^(?:(?:AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|BX|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|EH|EN|EX|FK|FY|G|GL|GY|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IM|IP|IV|JE|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE)(?:\d[\dA-Z]? ?\d[ABD-HJLN-UW-Z]{2}))$|^BFPO ?\d{1,4}$

Da hilft nur Datenbank/Sytem ändern oder hinnehmen, dass die Validierung irgendwelche buchstaben zulässt,also statt AB könnte jemand AZ eintragen

^(GIR ?0AA|BFPO ?\d{1,4}|[A-Z]{1,2}\d[\dA-Z]? ?\d[ABD-HJLN-UW-Z]{2})$

ChatGPT gibt mir als vereinfachte Version raus:

Hier ist eine vereinfachte Version eines Regex-Ausdrucks für britische Postleitzahlen:

^([A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2})$

Erklärung:
• [A-Z]{1,2} → 1 oder 2 Buchstaben am Anfang (z. B. “SW”, “B”, “EC”).
• \d[A-Z\d]? → Eine Ziffer, gefolgt von optional einem weiteren Buchstaben oder einer Ziffer (z. B. “1A”, “2”).
• ? → Optionales Leerzeichen.
• \d[A-Z]{2} → Eine Ziffer gefolgt von zwei Buchstaben (z. B. “1AA”, “2BB”).

Beispiele für gültige Postleitzahlen:
• SW1A 1AA
• M1 1AE
• B33 8TH
• W1A 0AX
• EC1A 1BB

Diese Version ist kürzer und deckt die meisten üblichen britischen Postleitzahlen ab. Sie könnte jedoch sehr seltene Sonderfälle nicht vollständig validieren.

Ansonsten Shopware anschreiben, dass diese das Feld erweitern, dass hier auch alle Fälle mit RegEx vom Vereinigten Königreich abgedeckt werden kann.

Ich denke sowas wäre auch denkbar ?

^(GIR ?0AA|BFPO ?\d{1,4}|[A-Z]{1,2}\d[\dA-Z]? ?\d[ABD-HJLN-UW-Z]{2})$

Optionale Leerzeichen würde ich bei regulären Ausdrücken immer mit \s? schreiben. So ein Leerzeichen könnte beim Schreiben ggf. untergehen.

@R4M @b.david @raymond-de @brettvormkopp

Seid Ihr lieb, Dankeschön.
Anett

Welches Gebiet hat denn die PLZ „GIR…“ ?

@R4M

Also ich hab mich für das hier entschieden: ^([A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2})$

Oder soll ich einen anderen Vorschlag nehmen?

Liebe Grüße
Anett

Habe jetzt nicht wirklich alle möglichen Postleitzahlen von GB zur Hand. Kann ja sein, dass irgendwelche auch mit „GIR“ anfangen - das weiß ich nicht.

Ansonsten habe ich auch gebastelt:

@R4M

Sorry, hab auf die Seite geschaut und weiß nicht wirklich, welchen Code ich da jetzt übernehmen soll :slight_smile:

Nur das Suchmuster :slight_smile:

Also:

GIR\s\d[A-Z]{1,2}|[A-Z]{1,2}\d[A-Z\d]?\s?\d[A-Z]{2}

bzw.

^GIR\s\d[A-Z]{1,2}|[A-Z]{1,2}\d[A-Z\d]?\s?\d[A-Z]{2}$

@R4M

Dankeeeeeeee :slight_smile:

Wobei man aber hier noch erwähnen muss, dass diese Validierung genauer arbeitet als die vereinfachte Form! Es hat schon einen Grund, warum die von Shopware so lang ist.