Need to validate an address on the cheap? Google services to the rescue. Their API allows up to 5,000 requests per day free of charge. You will need a developer API key, but you can get that for free.

Step 1: Include the Google Maps Library

<script type="text/javascript" src="//maps.google.com/maps/api/js?key=<PUT.YOUR.API.KEY.HERE>"></script>

Step 2: Validate the Address

Validating the address is a relatively simple step.

(function (w, google) {
  if (!w.app) {
    w.app = {};
  }
  
  function _formatResults(addresses) {
    if (!addresses || !addresses.length) {
      return [];
    }
    return addresses.map(function (address) {
      var a = {};
      a.formattedAddress = address.formatted_address;
      var parts = a.formattedAddress.split(",");
      a.line1 = parts[0].trim();
      a.city = parts[1].trim();
      var stateParts = parts[2].trim().split(" ");
      a.state = stateParts[0];
      a.zip = stateParts[1];
      a.country = parts[3];
      a.longitude = address.geometry.location.lng();
      a.latitude = address.geometry.location.lat();
      return a;
    });
  }
  
  function _validateAddress(address) {
    return new Promise(function (resolve, reject) {
      var addressArray = [address.line1, address.city, address.state];
      var addressString = addressArray.join(", ");
      var geocoder = new google.maps.Geocoder();
      geocoder.geocode({ address: addressString }, function (results, error) {
        if (error != "OK") {
          return reject(error);
        }
        var answer = _formatResults(results);
        return resolve(answer);
      });
    });
  }
  
  w.app.validateAddress = _validateAddress;
}(window, google));

That’s it! Now go forth and validate.