Okay, quick attempt at a fix.
Replace...
Code:
if (preg_match("/^([A-z0-9]{3})([-._\/\ ])([A-z0-9]{3})(.)?/i", $zipcode, $checkZip)) {
...with...
Code:
if (preg_match("/^([A-z0-9]{3,3})([-._\/\ ])([A-z0-9]{3,3})(.)?/i", $zipcode, $checkZip)) {
Let me know if this fixes it. If not, I will look at it more thoroughly tomorrow.