PO Boxを検証するが、そのような検証が存在するかどうかを知りたい。 Iアドレス1にアドレスフィールド分割を持っており、2アドレス(例えばPOを、アプト、スイート情報が行くだろう)PO Box Validation
例:
Address 1: 123 Main Street
Address 2: Suite 100
City: Any Town
State: Any State
Zip: Any Zip
私書箱(CANサブBIN BOXのためにも)の例:
- 私書箱123
- PO 123
- PO 123
- 私書箱123
- P.O 123
- ボックス123
- POB 123
- P.O.B 123
- P.O.B.箱123
- ポスト123
- ポストボックス123
(私はもっと追加または修正すること自由に感じ、私は検証する必要があるが、これは私が考えることができるものであるが、おそらくそこにいることを知っている)
私は、正規表現は、このための最良のだろう知っていると私は良い結果を得る他の質問から正規表現を使用して、他のスタック#1上の質問、#2
を見てきましたが、それは私はそれが
をキャッチすべきだと思ういくつかのミス$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";
}
}
なぜ、配列の最後の2つの値がキャッチされないのですか?
+1質問をする前に良い研究をしています。 – srijan
JSの質問については、まだ優れた答えです:https://stackoverflow.com/questions/5680050/po-box-regular-expression-validation – turibe