PHP - Изменение формата номера телефона с помощью Regex - PullRequest
6 голосов
/ 15 июня 2011

Я пытаюсь выяснить, как преобразовать номер телефона в формате
+ 18761234567
в
876-123-4567
, используя замену Regex.

Ответы [ 4 ]

17 голосов
/ 15 июня 2011

Я думаю, что это должно работать

preg_replace('/^\+1(\d{3})(\d{3})(\d{4})$/i', '$1-$2-$3', '+18761234567');

Я предполагаю, что +1 является константой, а затем использую ярлык \d для сопоставления десятичных символов.Значение в {} - это количество символов для сопоставления.

1 голос
/ 15 июня 2011

Кроме того, в Интернете есть библиотека Regexp.Это может помочь.

Поиск «телефон»:

http://www.regexlib.com/Search.aspx?k=phone&c=-1&m=-1&ps=20

0 голосов
/ 15 июня 2011

Предполагается, что есть 2 символа, которые в начале игнорируются.

preg_replace("/([0-9a-zA-Z+]{2})([0-9a-zA-Z]{3})([0-9a-zA-Z]{3})([0-9a-zA-Z]{4})/", "$2-$3-$4", '+18761234567');
0 голосов
/ 15 июня 2011

Я знаю, что это не регулярное выражение, но это также работает: -)

$num = '+18761234567';
$formatted = substr($num, 2, 3).'-'.substr($num, 5, 3).'-'.substr($num, 8);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...