Я бы не обжигал это на пальцах.
Просто взглянув на номер телефона, вы не сможете судить, действителен ли он или нет, и даже если он «выглядит» действительным, он может быть неномер телефона, который вы ищете (т. е. чужой номер телефона).
Вы пытаетесь решить проблему на неправильном уровне.Единственный способ подтвердить номер телефона - это НАЗВАТЬ его;)
Регулярное выражение, соответствующее вашим критериям:
/^(1|20|21|..etc)[1-9][0-9]+$/
список кодов стран (разделенных |), за которыми следует цифраэто не 0, за которым следует любая цифра любое количество раз.
Вы не можете выполнить проверку длины 13 и проверку страны в одном регулярном выражении, потому что длина кодов страны варьируется (насколько мне известнопо крайней мере).Вы можете выполнить проверку длины 13 с помощью общего регулярного выражения, например:
/^.{,13}$/
Соответствие чему-либо длиной до 13 символов