Единственное, что должно быть проверено, это количество цифр - соответствует ли оно тому, что вам нужно было бы назвать?
Коды доступа могут / не должны быть разрешены для ввода пользователем (например, +1 для США). Я скажу вам, почему - если это американец, который входит в него, и они не настолько умны, они, вероятно, захотят ввести 001 вместо 1. Причина в том, что 00 - это то, как вы получаете доступ к международному номеру из США. Они не знают, в чем разница между этим и просто +1. Если вы звоните на стационарные телефоны между кодами городов (а иногда и в одном и том же коде города), вы также введете 1 перед этим номером. Как в Японии
Возьми Японию. К провинциальным наземным линиям обращаются с 0 на передней части. Но если вы звоните из-за пределов Японии, вам это не нужно 0.
Мобильные номера в Китае состоят из 10 цифр, а в Гонконге - 8. Если в вашей форме указана страна, даже не спрашивайте код страны в начале номера - просто автоматически отобразите его в тексте, доступном только для чтения, рядом с номер, который им нужно ввести.
Список можно продолжить.
Просто проверьте количество цифр (убедитесь, что буквы не принимаются) и упростите для конечного пользователя ввод правильного количества цифр. Т.е. им не нужно вводить код страны, а если ваша форма очень умная, им может даже не понадобиться вводить код города, если это стационарный номер. Или, если они начнут вводить такие вещи, как код доступа, например, 0, перед японским номером, просто дайте им знать, что им это не нужно.
Любой другой персонаж, кроме цифр, должен быть спорным - у них нет шансов войти в него.