Jquery PO BOXvalidation

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

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

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

现场演示

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

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

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

这一个检查“PO”或“PO”或“Box”字样,后跟一个数字以确定它为PO Box地址。