Validating special characters
I've seen: Going too deeply into validation per countries is not recommended.
If your form captures country, then don't even ask for country code at the beginning of the number - just auto-show it in read-only text right next to the number they need to enter. Just validate the number of digits (make sure no letters are accepted) and make it easy for an end-user to enter the right number of digits. they shouldn't have to enter country code and if your form is super smart, they may not even need to enter area code if it's a landline number.
The key question then is how to make it easy for the user to recover from form errors.