Мне кажется, что вы прикладываете больше усилий, чем это оправдано. Рассмотрим:
Если ваша цель состоит в том, чтобы защитить себя от ошибочно введенных телефонных номеров, то, вероятно, вы можете поймать более 90% из них с помощью очень простой проверки.
Если ваша цель состоит в том, чтобы заставить пользователей предоставить действительный номер, независимо от того, хотят они предоставить эту информацию или нет, то вы взяли на себя безнадежную задачу - даже если вы смогли получить 100% точный Во-вторых, для того, чтобы убедиться, что точное введенное число в настоящий момент является действительным, вы все равно не можете быть уверены, что число, которое они вам дали, принадлежит им. Еще раз, простая проверка помешает большинству людей, вводящих фиктивные числа, но те, кто желает попробовать более двух или трех раз , найдут способ победить ваши попытки набрать их число. *
В любом случае, простой тест принесет вам хорошие результаты, а переход к более сложным наборам правил займет все больше времени, но при этом будет приносить вам все меньше пользы (в то же время, потенциально добавляя ложные срабатывания, как уже было показано с помощью " семь одинаковых цифр "и 867-5309 дел).