我在自定义jQuery Validate方法中使用以下PO Box正则表达式。它在90%的情况下都有效,但是如果有人键入“ 21 box hill”-它认为它是一个po box并匹配。
要进行此工作,我需要更改正则表达式什么?
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
非比赛项目:岗山,Box Road
最佳答案
我发现了一种运作良好的模式:
var pattern = /^[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\s*(\d.)*/gi;