PO Box Regex在包含“box”一词的地址上失败

时间:2011-04-27 14:35:42

标签: javascript jquery regex

我在自定义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.");

这些是我需要的比赛:

匹配: PO BOX,P.O。盒子,邮政信箱,POBOX123
非比赛: Post Hill,The Box Road

1 个答案:

答案 0 :(得分:2)

我找到了一个效果很好的模式:

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