gpt4 book ai didi

php - 邮政信箱验证

转载 作者:可可西里 更新时间:2023-11-01 12:31:06 24 4
gpt4 key购买 nike

希望验证邮政信箱,但想知道是否存在此类验证。我将地址字段分为地址 1 和地址 2(这样的 PO、公寓、套房信息会去哪里)

例子:

Address 1: 123 Main Street
Address 2: Suite 100
City: Any Town
State: Any State
Zip: Any Zip

邮政信箱(也可以为 BOX 子 BIN)示例:

  • 邮政信箱 123
  • 邮政信箱方框123
  • PO 123
  • 邮政信箱 123
  • 邮政信箱 123
  • 第 123 栏
  • 123

  • 123
  • POB 123
  • 订单号 123
  • P.O.B. 123
  • 123 号邮报
  • 123 号邮箱

(我知道可能还有更多我需要验证的,但这是我能想到的,请随意添加或更正)

我知道 RegEx 最适合这个,我在 Stack #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";
}
}

为什么它没有捕获数组中的最后两个值?

最佳答案

截至目前,对于您的正则表达式,“OFFICE”中的“O”是必需的。试试 ^\s*((P(OST)?.?\s*(O(FF(ICE)?))?.?\s+(B(IN|OX))?)|B(IN| OX)) 而不是(在条件匹配中对“O”进行分组)。

编辑:应该是 /^\s*((P(OST)?.?\s*(O(FF(ICE)?)?)?.?\s+(B(IN|OX ))?)|B(IN|OX))/i 代替。顺便说一句,http://rubular.com/是一个相当不错的正则表达式测试引擎。总是很高兴知道新工具:)

关于php - 邮政信箱验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5159535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com