Postfach Validierung

8

Sie wollten das Postfach überprüfen, wollten aber wissen, ob eine solche Validierung existiert. Ich habe das Adressfeld in Adresse 1 und Adresse 2 aufgeteilt (wo solche PO, Apt, Suite Info gehen würde)

Beispiel:

%Vor%

PO Box (Kann auch Sub BIN für BOX) Beispiele:

  • Postfach 123
  • P.O. Kasten 123
  • PO 123
  • Postfach 123
  • P.O 123
  • Box 123
  • 123

  • 123
  • Postfach 123
  • P.O.B 123
  • P.O.B. 123
  • Beitrag 123
  • Postfach 123

(Ich weiß, dass es wahrscheinlich mehr gibt, für die ich eine Validierung durchführen muss, aber das ist es, woran ich denken könnte, fühle mich frei, etwas hinzuzufügen oder zu korrigieren)

Ich weiß, dass eine RegEx dafür am besten wäre und ich habe die anderen Fragen zu Stack # 1 gesehen , # 2

Mit der RegEx von der anderen Frage bekomme ich gute Ergebnisse, aber es vermisst einige Ich denke, es sollte fangen

%Vor%

Warum fängt es nicht die letzten beiden Werte im Array ab?

    
Phill Pafford 01.03.2011, 19:48
quelle

3 Antworten

9

Ab sofort ist bei Ihrer Regex das 'O' in 'OFFICE' erforderlich. Probieren Sie stattdessen ^\s*((P(OST)?.?\s*(O(FF(ICE)?))?.?\s+(B(IN|OX))?)|B(IN|OX)) aus (Gruppierung des 'O' in einer bedingten Übereinstimmung).

EDIT: Das sollte stattdessen /^\s*((P(OST)?.?\s*(O(FF(ICE)?)?)?.?\s+(B(IN|OX))?)|B(IN|OX))/i sein. BTW, Ссылка ist eine ziemlich gute Suchmaschine für reguläre Ausdrücke. Immer schön von neuen Tools zu wissen:)

    
William 01.03.2011, 19:53
quelle
2

Lass es uns durchgehen ...

%Vor%     
EboMike 01.03.2011 19:54
quelle
2

Dies funktioniert besser, da es die nicht benötigten Gruppen im Match-Set entfernt und nur das ganze Match zurückgibt.

Überspringt Post 123:

%Vor%

Überspringt Post 123 nicht:

%Vor%

Entfernen Sie das \ d + am Ende, um die Nummernanforderung zu überspringen.

    
Torgo 29.08.2012 17:41
quelle

Tags und Links