It’s not pretty, but sometimes you need to check an address input to see if it’s a PO box. Rules will be different around PO boxes.
For that, I use a simple javascript pattern. It has the down side of checking for “P”, “O”, and “Box” in the string in order, so something like Poratable Box Road will fail validation, but I don’t think that’s a real road, so it seems to work for real world use cases.
var street1 = jQuery('#address1').val();
var street2 = jQuery('#address2').val();
var pattern = new RegExp('\\b[p]*(ost)*\\.*\\s*[o|0]*(ffice)*\\.*\\s*b[o|0]x\\b', 'i');
if(street1.match(pattern) || street2.match(pattern) {
alert('We do not ship to PO boxes. Please enter a different address");
return false;
}