Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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,Im在自定义jQuery验证方法中使用以下PO Box正则表达式。它在90%的情况下都有效,但如果有人键入“21 box hill”,它会认为这是一个邮箱,并且匹配 我需要将什么更改为我的正则表达式才能使其正常工作 jQuery.validator.addMethod("nopobox", function(value, element) { return ! /(?:p(?:ost)?\.?\s?[o|0](?:\.|ffice)?)\b|(?:b(?:[o|0]x)|(?:in))\

Im在自定义jQuery验证方法中使用以下PO Box正则表达式。它在90%的情况下都有效,但如果有人键入“21 box hill”,它会认为这是一个邮箱,并且匹配

我需要将什么更改为我的正则表达式才能使其正常工作

jQuery.validator.addMethod("nopobox", function(value, element) {
    return ! /(?:p(?:ost)?\.?\s?[o|0](?:\.|ffice)?)\b|(?:b(?:[o|0]x)|(?:in))\b/i.test(value);
}, "PO Boxes are not allowed.");
以下是我需要的匹配项:

匹配项:邮政信箱、邮政信箱、邮政信箱、POBOX123

不匹配:后山、箱形路

我发现了一种效果很好的模式:

    var pattern = /^[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\s*(\d.)*/gi;

如果不知道它是什么情况,也不应该出现在什么情况下,就很难提出解决方案。也许你可以给我们一个它应该点击的东西的样本(你已经给了我们一个它不应该点击的),检查单词“box”后面的数字?大多数指向实际邮箱的地址都是“邮政信箱12345”,并删除任何在字框前带有数字的地址。