【问题标题】:Jquery PO BOX validationjQuery PO BOX 验证
【发布时间】:2016-01-16 23:29:08
【问题描述】:

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

$( 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
    }

);  

【问题讨论】:

    标签: jquery regex


    【解决方案1】:

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

    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>');
        }
    });
    

    【讨论】:

    • 完美,感谢您的帮助。我不得不用我的方式对其进行一些操作,但是这个概念就在那里并且它起作用了。非常感谢!
    • @Mike:你打赌。我已尝试在 JSFiddle 演示中包含尽可能多的奇怪内容,因此希望您不会遇到任何误报。
    • 这失败了,任何带有字符 PO 并且后跟任何带有 B 和数字的字符串都会失败。因此,任何参考参考的人,请考虑这些常见的情况。示例:Harpor Bay Apt 212, Portsmouth Blvd, Apt 204
    【解决方案2】:

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

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

    这会检查“P.O.”中的任何一个或“PO”或“Box”字样,后跟一个数字,确定其为邮政信箱地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多