我們有一個C#ASP.Net頁面,客戶在郵政局不允許的地址輸入,因爲我們使用UPS運送這些郵件。顧客是富有創造力的人,他們想出創造性的方式來標記P.O.框。測試所有形式的郵政信箱
我們有這種RegEx模式,它主要做我們需要的。
P.O. box 17432
poSt oFFice box 11111
box 222
p0 box 222
#343 po box
#po box 343
不匹配(這是正確的行爲):
(?i)\b[p]*(?:ost)*\.*\s*[o0]*(?:ffice)*\.*\s+?([b]*[o0]*[x])
這種模式,我們有文件幾乎所有情況下工作在
1234 Main St (Shouldn't match, but we have it in there for a negative test case.)
然而,它也不符合這些,它應該:
p0b 222
POB 1112
這些樣本實際上是用戶在其慷慨的性質中爲我們提供的值。 ;)
我總是爲了簡化。
刪除評論 – automatic 2011-03-10 18:32:31
他們爲什麼會產生?因爲他們試圖智取系統。當驗證者被絆倒時,它以大的紅色字母表示「沒有郵政信箱」。爲了記錄,我們經常提醒客戶PO郵箱是不允許的。 – amber 2011-03-10 18:45:26