Ответ, если что-то «лучшее», почти невозможно (если только вы не отвечаете на свой вопрос).
То, как вы предлагаете это, убирая все нецифровые символы и затем проверяя, есть ли 10 цифр, может привести к нежелательному поведению для такой строки:
Джордж Вашингтон (22 февраля 1732 г. -
14 декабря 99 года) был командиром
Континентальной армии в
Американская революционная война и служил
в качестве первого президента Соединенных
Штаты Америки.
, поскольку удаление всех нецифровых символов приведет к строке 2217321499
длиной 10 цифр, но я очень сомневаюсь, что всю строку следует рассматривать как действительный номер телефона.