С учетом указанных вами правил:
до длины 13 и включая символ + инфронт.
(включая также минимальную длину 10 в вашем коде)
Вам понадобится регулярное выражение, которое выглядит следующим образом:
^\+[0-9]{10,13}$
С минимальной и максимальной длинами, закодированными в регулярном выражении, вы можете отбросить эти условия из своего блока if()
.
Не по теме: я бы предположил, что диапазон от 10 до 13 слишком ограничен для поля международного телефонного номера;Вы почти наверняка найдете действительные числа, которые как длиннее, так и короче этого.Я бы предложил диапазон 8 - 20, чтобы быть безопасным.
[EDIT] OP утверждает, что приведенное выше регулярное выражение не работает из-за escape-последовательности.Не уверен, почему, но альтернативой будет:
^[+][0-9]{10,13}$
[EDIT 2] OP теперь добавляет, что знак +
должен быть необязательным.В этом случае регулярному выражению требуется знак вопроса после +
, поэтому приведенный выше пример теперь будет выглядеть так:
^[+]?[0-9]{10,13}$