Моя склонность заключается в том, чтобы согласиться с тем, что зачистка цифр и просто принятие того, что там лучше. Возможно, чтобы обеспечить хотя бы пару цифр, хотя это и запрещает что-то вроде алфавитного номера телефона «ASK-JAKE», например.
Несколько простых выражений perl могут быть:
@f = /(\d+)/g;
tr/0-9//dc;
Используйте первый, чтобы сохранить группы цифр вместе, что может дать ключи к форматированию. Используйте второй, чтобы тривиально подбросить все нецифровые символы.
Опасно ли, что может потребоваться пауза, а затем ввести еще несколько клавиш? Или что-то вроде 555-1212 (дождитесь звукового сигнала) 123?