Jquery PO BOX验证

时间:2011-04-14 16:42:46

标签: jquery regex

我查看了一些较旧的帖子,但仍然对正在发生的事情感到困惑。我有一个不允许邮政信箱的运输表格所以我试图找到一个验证器来查看并确保输入字段中没有PO。我确保每个字段都填写了这段代码,但是想知道如何将它包含在PO盒验证中。 注意:这是我实际表单中的单独文件

$( document ).ready(

    function()
    {
        $( '#shipping' ).submit(
            function()
            {

                    var required_fields = new Array(
                        'name',
                        'service',
                        'company',
                        'contact',
                        'street',
                        'city',
                        'state',
                        'zip',
                        'projectnum'
                    );


                        for( j in required_fields )
                        {

                            var theRequiredField = required_fields[j]
                            var inputField = $( '[name="' + theRequiredField + '"]' )

                            if( inputField.val() == '' )
                            {                                   
                                alert( "The '" + theRequiredField + "' field is required." );
                                inputField.focus();
                                return false;

                            } 

                        } 


            } // function
            ) // submit
    }

);  

2 个答案:

答案 0 :(得分:9)

可能有更好的方法,但这就是我提出的方法:

<强> Live Demo

$('input[name=address]').each(function() {
    var pattern = new RegExp('[PO.]*\\s?B(ox)?.*\\d+', 'i');
    if ($(this).val().match(pattern)) {
        $(this).after('<span class="pob">No PO Boxes</span>');
    }
});

答案 1 :(得分:1)

我使用了drudge上面提供的RegEx。它适用于大多数情况,但它给了我像“1122新空间 - Apt.99B1”这样的字符串的误报。所以我将RegEx修改为:

var pattern = new RegExp('(P.O.|PO|Box)+\\s?.*\\d+', 'i');

这个检查“P.O.”中的任何一个或“PO”或“Box”字样,后跟一个数字以确定它为PO Box地址。