我们有一个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