Javascript 在地址/字符串中查找采购订单框

Javascript 在地址/字符串中查找采购订单框,javascript,regex,Javascript,Regex,我最近制作了此正则表达式以验证AFO、DPO、FPO和常规邮箱地址: /(^[afd]..*?^)(((p[\s\.]?[o\s][\.]?)\s?)(邮局?)((箱位b?)?\s?(数字?)\s?\d+/ 在用户插入“13605 NE 245th Lane或邮政信箱55”作为街道地址之前,它一直工作正常。USPS认为这是一个有效的地址,但不幸的是,我的正则表达式中没有这个地址。当用户首先列出他们的常规街道地址,然后列出邮箱部分时,我不知道如何修改正则表达式以捕获地址中的邮箱。当它在另一个方向时

我最近制作了此正则表达式以验证AFO、DPO、FPO和常规邮箱地址:

/(^[afd]..*?^)(((p[\s\.]?[o\s][\.]?)\s?)(邮局?)((箱位b?)?\s?(数字?)\s?\d+/

在用户插入“13605 NE 245th Lane或邮政信箱55”作为街道地址之前,它一直工作正常。USPS认为这是一个有效的地址,但不幸的是,我的正则表达式中没有这个地址。当用户首先列出他们的常规街道地址,然后列出邮箱部分时,我不知道如何修改正则表达式以捕获地址中的邮箱。当它在另一个方向时,它确实会抓住它

有没有办法改变正则表达式以适应这种新情况,同时保持其当前的功能?我愿意接受其他建议,甚至可能使用两个不同的正则表达式。谢谢

试试看:

/([afd]?)((p[\s\.]?[o\s][\.]?)\s?)(邮局?)((box | bin | b\.?)?\s?(num | number |#)?\s?\d+/i

删除
^
,因为
邮政信箱55
不在地址行的开头

例如:


到目前为止效果很好!谢谢