javascript - 邮政信箱正则表达式在包含单词 "box"的地址上失败

标签 javascript jquery regex

我在自定义 jQuery Validate 方法中使用以下 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.");

这些是我需要的匹配:

匹配: PO BOX、P.O.信箱,邮政信箱,POBOX123
不匹配: The Post Hill、The 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;

关于javascript - 邮政信箱正则表达式在包含单词 "box"的地址上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805824/

相关文章:

javascript - 使用同位素过滤动态数据

javascript - 如何将文本从 div 移动到输入值中?

javascript - Ajax 响应中的尾随空格

jQuery 验证插件不验证元数据

javascript - 如何将这两个正则表达式合并为一个?

regex - Notepad++ 替换正则表达式匹配相同的文本加上附加字符

javascript - 绘制 Three.js BufferGeometry 线时,颜色不会粘在线段上

javascript - - 选择 ="{{ associationId==association.value }}": Interpolation inside attributes has been removed. 使用 v-bind 或冒号简写

c# - 无法使用 jquery ajax 调用 aspx 页面 Web 方法

包含子正则表达式的 Javascript 复合正则表达式