Конечно, вы знаете, что номера телефонов бывают разных форм,
, например
- , находясь в Вене, Австрия, набрав "4000", вы подключитесь к
Ратуша.
- находясь в Инсбруке, Австрия, вам нужно набрать "014000", чтобы набрать номер в мэрии Вены
- находясь в Нью-Йорке, США, вам нужно набрать +4314000, чтобы набрать тот же номер.
Это имеет исторические причины: старая механическая система делегировала работу по соединению вызова с одного устройства на другое с каждой цифрой (это также причина, по которой добавочные номера находятся в конце номера, а не в начале , у DNS, где вы можете расширить свои доменные имена в начале, но не в конце)
Теперь регулярное выражение с обоими якорями ^
и $
будет соответствовать только номеру телефона, если он указан точно в одной форме. С помощью только якоря $
он будет надежно соответствовать одному и тому же номеру телефона, если не указан другой добавочный номер. Без привязки, т. Е. Удаление ^
и $
будет совпадать независимо от кодов местоположения и расширений, но приведет к ненадежности:
Использование «4000» в качестве шаблона для Венской мэрии будет соответствовать «4000», «014000» и «+4314000», но также будет соответствовать «+44140001», что является немецким банком.