You can pre-validate any or all of the card data beforehand—check out the Validation section of the documentation.
To deal with ZIP code mismatches or incorrect CVV data, you'll have to implement appropriate error handling on both your server and client.
If you haven't worked with other payment processors before, this is not specific to Stripe. CVV is generated with private encryption keys and can only be verified by trusted parties (i.e. the issuing banks). The payment card industry's not in the habit of enabling brute force attacks, so you must actually post a charge to determine whether card validation data is correct.
There is no way to know the data is correct until you attempt a charge—if that charge is rejected for reasons of incorrect data, that's how you know it's incorrect. It's how the payment network functions, and it's how your application must function.