Извлечь номера из поля ввода номера телефона (PHP) - PullRequest
3 голосов
/ 17 февраля 2012

У меня есть поле для ввода номера телефона, которое позволяет пользователю добавлять номер телефона в любом формате, который он хочет (555-555-5555, (555) 555 - 5555 и т. Д.).

Поскольку это только поле номера телефона, я могу игнорировать все, кроме цифр в поле.

В настоящее время я использую следующий код. Извлекает все числа, но проблема в том, что они не в порядке - они в беспорядочном порядке.

Как извлечь числа в порядке их появления в исходной строке?

preg_match_all('/\d+/', $Phone, $matches);

$Phone = implode('', $matches[0]);

Редактировать : Они на самом деле не в беспорядочном порядке из этой функции - я вставлял числа в поле базы данных int (10), что вызывало беспорядок. Но приведенные ниже ответы по-прежнему являются более эффективным способом достижения моей цели.

Ответы [ 4 ]

4 голосов
/ 17 февраля 2012

Используйте preg_replace для удаления любых нецифровых чисел:

$numbers = preg_replace('/[^\d]/','',$Phone);
2 голосов
/ 17 февраля 2012

Почему бы просто не заменить в строке все, что не является цифрой?

$number = preg_replace("/[^0-9]/", '', $Phone);
2 голосов
/ 17 февраля 2012
$Phone = preg_replace('/[^\d]/', '', $Phone);
0 голосов
/ 17 февраля 2016

Попробуйте

if (!preg_match("/^[0-9\-]*$/",$Phone)) {
    echo "Only Numeric and strip (-)";
}

Пример:

Хорошо: 0877-9320-9356

Ошибка: 0877 9320 9356 или 087793209356

...