javascript - 邮政信箱正则表达式验证

标签 javascript jquery regex

这是我的代码,但我永远无法触发警报。

$(document).ready( function (){
    $("[id*='txtAddress1S']").blur(function() {
        var pattern = new RegExp('\b[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\b');
        if ($("[id*='txtAddress1S']").val().match(pattern)) {
            alert('We are unable to ship to a Post Office Box.\nPlease provide a different shipping address.'); 
        }

    });
});

最佳答案

我尝试了在互联网上找到的几种 PO Box RegExp 模式,包括 Stack Overflow 上发布的那些模式,但没有一个通过我们的测试要求。因此,我在下面发布了我们的 RegExp 和我们的测试集:

var poBox = /^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|n|num|number)?\d+))|(p(ost|ostal)? *(o(ff(ice)?)?)? *((box|bin)|b)? *(#|n|num|number)*\d+)|(p *-?\/?(o)? *-?box)|post office box|((box|bin)|b) *(#|n|num|number)? *\d+|(#|n|num|number) *\d+)/i;

var matches = [ //"box" can be substituted for "bin" 
    "#123", 
    "Box 123", 
    "Box-122", 
    "Box122", 
    "HC73 P.O. Box 217", 
    "P O Box125", 
    "P. O. Box", 
    "P.O 123", 
    "P.O. Box 123", 
    "P.O. Box", 
    "P.O.B 123",
    "P.O.B. 123", 
    "P.O.B.", 
    "P0 Box", 
    "PO 123", 
    "PO Box N", 
    "PO Box", 
    "PO-Box", 
    "POB 123", 
    "POB", 
    "POBOX123",
    "Po Box", 
    "Post 123", 
    "Post Box 123", 
    "Post Office Box 123", 
    "Post Office Box", 
    "box #123", 
    "box 122", 
    "box 123", 
    "number 123", 
    "p box", 
    "p-o box", 
    "p-o-box", 
    "p.o box", 
    "p.o. box", 
    "p.o.-box", 
    "p.o.b. #123", 
    "p.o.b.", 
    "p/o box", 
    "po #123", 
    "po box 123", 
    "po box", 
    "po num123", 
    "po-box", 
    "pobox", 
    "pobox123", 
    "post office box", 
    "Post Box #123" 
];

var nonMatches = [ 
    "The Postal Road", 
    "Box Hill", 
    "123 Some Street", 
    "Controller's Office", 
    "pollo St.", 
    "123 box canyon rd", 
    "777 Post Oak Blvd", 
    "PSC 477 Box 396", 
    "RR 1 Box 1020" 
]; 

关于javascript - 邮政信箱正则表达式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5680050/

相关文章:

javascript - Magento 管理面板 - 页面属性集不起作用 "Add group"

javascript - 在html5中,我可以强制浏览器下载我正在使用的音频文件吗?

javascript - 加载时隐藏多个图像数据 ID,单击按钮时显示它们

javascript - 正则表达式,仅允许使用整数和十进制

php - 匹配包裹图案

python - sre_constants.error : nothing to repeat in jython

javascript - 从 Javascript 函数加载和引用 DOM 元素

javascript - 在这种情况下 .fail() 还是 .timeout() 更好?

javascript - 如何将 CSS background-position 属性从百分比转换为像素?

jquery - 无法使用 jQuery 通过表中的数组访问复选框