Postcode form field is too liberal

We should be validating the postcode looks sensible.  I have seen some errors in testing where long postcodes (generated by form-filling plugins) are rejected by payment gateways.

Datacash use this regex for Postcodes:

    /^(.{0,9}|\d{5}(-\d{4})?)$/

We should do some research and come up with a more general regex that can validate postcodes.