Próbuję zweryfikować skrytkę pocztową, ale chciałem się dowiedzieć, czy takie zatwierdzenie istniało. Mam rozłam polu adresowym do Adres 1 i adres 2 (gdzie takie PO, Apt, info Suite pójdzie)Sprawdzenie ważności skrytki pocztowej
Przykład:
Address 1: 123 Main Street
Address 2: Suite 100
City: Any Town
State: Any State
Zip: Any Zip
Box (Może sub BIN dla BOX również) Przykłady:
- Box 123
- PO Box 123
- PO 123
- skrzynki Post Office 123
- doustnie 123
- Box 123
- POB 123
- P.O.B 123
- P.O.B. 123
- post 123
- Post Box 123
(wiem, że są prawdopodobnie bardziej muszę potwierdzić na ale to co mogę myśleć, nie krępuj się, aby dodać lub prawidłowe)
wiem regex byłby najlepszy do tego i widziałem inne pytania na stosie #1, #2
Korzystanie regex z drugiej pytanie mam dobre wyniki, ale strzela niektóre myślę, że powinno złapać
$arr = array (
'PO Box 123',
'P.O. Box 123',
'PO 123',
'Post Office Box 123',
'P.O 123',
'Box 123',
'#123', // no match
'123', // no match
'POB 123',
'P.O.B 123', // no match
'P.O.B. 123', // no match
'Post 123', // no match
'Post Box 123' // no match
);
foreach($arr as $po) {
if(preg_match("/^\s*((P(OST)?.?\s*O(FF(ICE)?)?.?\s+(B(IN|OX))?)|B(IN|OX))/i", $po)) {
echo "A match was found: $po\n";
} else {
echo "A match was not found: |$po| \n";
}
}
Dlaczego nie przechwytuje dwóch ostatnich wartości w tablicy?
+1 za wykonanie dobrych badań przed zadaniem pytania. – srijan
Dla pytania dotyczącego JS, ale wciąż jest to doskonała odpowiedź: https://stackoverflow.com/questions/5680050/po-box-regular-expression-validation – turibe