{"id":284,"date":"2017-11-20T19:36:06","date_gmt":"2017-11-20T19:36:06","guid":{"rendered":"http:\/\/www.evermoretechnologies.com\/blog\/?p=284"},"modified":"2017-11-20T19:42:28","modified_gmt":"2017-11-20T19:42:28","slug":"javascript-to-check-for-po-boxes","status":"publish","type":"post","link":"https:\/\/www.evermoretechnologies.com\/blog\/2017\/11\/javascript-to-check-for-po-boxes\/","title":{"rendered":"Javascript to check for PO boxes"},"content":{"rendered":"<p>It&#8217;s not pretty, but sometimes you need to check an address input to see if it&#8217;s a PO box.\u00a0 Rules will be different around PO boxes.<\/p>\n<p>For that, I use a simple javascript pattern.\u00a0 It has the down side of checking for &#8220;P&#8221;, &#8220;O&#8221;, and &#8220;Box&#8221; in the string in order, so something like Poratable Box Road will fail validation, but I don&#8217;t think that&#8217;s a real road, so it seems to work for real world use cases.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">var street1 = jQuery('#address1').val();\r\nvar street2 = jQuery('#address2').val();\r\n\r\nvar pattern = new RegExp('\\\\b[p]*(ost)*\\\\.*\\\\s*[o|0]*(ffice)*\\\\.*\\\\s*b[o|0]x\\\\b', 'i');\r\n\r\nif(street1.match(pattern) || street2.match(pattern) {\r\n    alert('We do not ship to PO boxes.  Please enter a different address\");\r\n    return false;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s not pretty, but sometimes you need to check an address input to see if it&#8217;s a PO box.\u00a0 Rules will be different around PO boxes. For that, I use&#8230; <a href=\"https:\/\/www.evermoretechnologies.com\/blog\/2017\/11\/javascript-to-check-for-po-boxes\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[36],"tags":[],"_links":{"self":[{"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/284"}],"collection":[{"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=284"}],"version-history":[{"count":1,"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/284\/revisions"}],"predecessor-version":[{"id":285,"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/284\/revisions\/285"}],"wp:attachment":[{"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.evermoretechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}