重构正则表达式以进行地址验证

San*_*har 4 regex angular

我的角度应用程序中有以下用于邮政地址验证的正则表达式。

const regx = '\\b([p]*(ost)*\\.*\\s*[o|0]*(ffice)*\\.*\\s*b[o|0]x)\\b'

我只想让这个正则表达式通过

比赛名单:

  1. 邮政信箱
  2. 邮政信箱
  3. 邮局信箱
  4. 邮政信箱街1234号
  5. 123邮政信箱

但它也匹配

不匹配列表:

  1. 盒子
  2. 盒子
  3. 可怜的盒子

ETC。,

如何收紧此正则表达式,使其与“不匹配列表”不匹配?另外,我希望我的正则表达式能够针对邮政信箱或邮局箱等进行升级。有任何输入吗?

Rav*_*h13 5

对于您显示的示例,请尝试以下正则表达式。这是使用正则表达式的在线演示。

^(?:[0-9]*\s*[pP](?:\.O\.|o)(?:st(?:al)?\soffice\s)*[bB]ox(?:\sstreet)?)$
Run Code Online (Sandbox Code Playgroud)

说明:为上述正则表达式添加详细说明。

^(?:[0-9]*\s*[pP](?:\.O\.|o)(?:st(?:al)?\soffice\s)*[bB]ox(?:\sstreet)?)$
Run Code Online (Sandbox Code Playgroud)