Почему вас волнует, где пользователи хотят разбить группы цифр или какие символы они используют для этого? Здесь, в Швеции, часто можно увидеть, как один человек пишет данный номер телефона как 046 123 456 789
, а кто-то другой пишет его 046 123 45 67 89
, но оба номера набираются одинаково и одинаково действительны. (Как, впрочем, и было бы 04 61 2345 6 78 9
- не тот формат, который я когда-либо видел, но он все равно набирает одинаково.)
Просто удалите нечисловые символы (кроме начальных +
, поскольку это имеет смысл), убедитесь, что это разумное количество цифр, сохраните его и отредактируйте в предпочитаемом формате при отображении числа. Или сохраните формат, введенный пользователем, хотя тогда вам нужно принять обычные меры предосторожности для предотвращения SQL-инъекций, CSS, XSRF и т. Д. Атак.