preg_replace help: номер телефона - PullRequest
1 голос
/ 01 февраля 2010

Мне нужна небольшая помощь здесь.Этот код правильно отображает каждый формат, который я ввожу, за исключением случаев, когда это xxx.xxx.xxxx

.Как мне отфильтровать периоды тоже?

preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "$1-$2-$3", $phone_enter)

Ответы [ 2 ]

4 голосов
/ 01 февраля 2010

Я бы сделал это:

preg_replace('/(\d{3})([.-])?(\d{3})\2(\d{4})/', '$1-$3-$4', $phone_number);

\d является сокращением для [0-9]. Использование обратной ссылки означает, что вы можете ввести «123.456.7890» или «123.456.7890», но не «123.4567890» или «123.456-7890».

Также имейте в виду, что в других странах используются разные форматы телефонных номеров, если это имеет отношение к тому, что вы делаете.

4 голосов
/ 01 февраля 2010

Вам нужно обновить запрос, чтобы он позволял . (точка), я добавил \.?, что означает, что точка может появляться ноль или один раз.

preg_replace("/([0-9]{3})\.?([0-9]{3})\.?([0-9]{4})/", "$1-$2-$3", $phone_enter)
...