问题描述
|
我浏览了一些较早的帖子,但对正在发生的事情仍然有些困惑。我有一个不允许使用PO Box的运输表格,所以我试图找到一个验证器以进行检查,并确保输入字段中没有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
}
);
解决方法
也许有更好的方法,但这是我想出的:
现场演示
$(\'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>\');
}
});
,我使用上面由苦力提供的RegEx。它适用于大多数情况,但是对于诸如“ 1122新空间– Apt。99B1”之类的字符串,它给我带来了误判。因此,我将RegEx修改为:
var pattern = new RegExp(\'(P.O.|PO|Box)+\\\\s?.*\\\\d+\',\'i\');
该命令检查\“ P.O. \”或\“ PO \”或\“ Box \”单词中的任意一个,然后检查一个数字以将其确定为PO Box地址。