Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式表单验证-边缘案例_Javascript_Jquery_Regex - Fatal编程技术网

Javascript正则表达式表单验证-边缘案例

Javascript正则表达式表单验证-边缘案例,javascript,jquery,regex,Javascript,Jquery,Regex,下面的正则表达式几乎解释了我需要匹配的所有情况。下面的例子 /\bP(ost|ostal)?([ \.]*O(ffice)?)?([ \.]*Box)?\b/ig 为了澄清,字符串从地址字段中完整提取,并由jQuery验证器验证。我的工作场所无法运送到邮政信箱-因此要求 匹配正确 po box p.o. box post office box PO. BOX Post Box Postal Box 19 boxton drive 3 box hill road 22 pop box stre

下面的正则表达式几乎解释了我需要匹配的所有情况。下面的例子

/\bP(ost|ostal)?([ \.]*O(ffice)?)?([ \.]*Box)?\b/ig
为了澄清,字符串从地址字段中完整提取,并由jQuery验证器验证。我的工作场所无法运送到邮政信箱-因此要求

匹配正确

po box
p.o. box
post office box
PO. BOX
Post Box
Postal Box
19 boxton drive
3 box hill road
22 pop box street
121 pony box
15 posting street
不匹配

po box
p.o. box
post office box
PO. BOX
Post Box
Postal Box
19 boxton drive
3 box hill road
22 pop box street
121 pony box
15 posting street
这些是不正确匹配的有效地址

92 postal drive
17 post street
这是一个不匹配的无效地址

box 199
试一试这个:

/\bP(?:\.|o|ost(?:al)?)? ?(?:O(?:\.|ffice)?)? ?Box\b/ig

请参阅:有关解释和演示

的信息,正则表达式是否只应匹配邮政信箱地址的变体,而不匹配街道或建筑物名称中包含术语框或邮政的其他地址?输入的形式是什么?例如,一个字符串只包含一个地址,或者您正在尝试从一个较长字符串的中间提取一个地址?可能一个否定的前瞻可能会起作用@nnnnnn正则表达式应该匹配邮政信箱地址的变体,斜体而非斜体匹配包含“信箱”、“邮政”或“邮政”等术语的其他地址。输入是以字符串的形式输入到地址字段,并且正在使用jQuery Validator进行验证。如果要验证一个应该只包含地址的字符串,则可以使用^P启动正则表达式,以匹配字符串开头的P。请注意,有些国家有一个锁袋123的概念,您可能希望将其视为邮政信箱。还有,不谈主题,但我自己的邮寄地址是邮箱,当公司不发货时,我觉得很烦人,在这种情况下,我通常会把我的业务转移到其他地方。@nnnnnnnn我们的产品非常大。谢谢。我稍微修改了正则表达式,还有一个我无法解释的例子:applebox 14。我知道这是一个边缘案件,但我正试图迎合尽可能多的。请看:您希望它与applebox匹配吗?现在不是。我希望它和盒子199匹配,而不是和15个苹果盒子匹配。再次-谢谢。在您提供的链接中,您匹配的是框222,而不是14 Applebox,因此它看起来像您有您需要的。感谢您查看@Jon P。在14 Applebox字符串后按enter键: