2010-08-10 4 views
1

Как изменить любое из следующих действий, чтобы только числарег бывший телефонный номер

1-(999)-999-9999 
1-999-999-9999 
1-999-9999999 
1(999)-999-9999 
1(999)999-9999 

я хочу конечный продукт будет 19999999999

+0

возможно дубликат [Всеобъемлющий регулярное выражение для проверки номера телефона] (http://stackoverflow.com/questions/123559/a- full-regex-for-phone-number-validation) – JYelton

ответ

2

Проще всего было бы лишить все из вашей строки это не числом, а затем посмотреть, если вы в конечном итоге с 10 цифр (или 11, если вы делаете 1 обязательно):

$string = "1-(999)-999-9999"; 
$number = preg_replace('/[^0-9]/', "", $string); // results in 19999999999 
if (strlen($number) == 11) 
{ 
    // Probably have a phone number 
} 
+0

15 цифр для международных – CaffGeek

+0

Да, но я собираюсь в форматах, которые он предоставил. –

2

попробовать

preg_replace('\D', '', $string); 

Это будет отфильтровывать любые цифры.

0

Вы действительно не нужно регулярное выражение для этого ...

$number = str_replace(array('-', '(', ')'), '', $number); 
+0

Что насчет таких вещей, как 'x',' ext', '.',' + 'и т. Д. – CaffGeek

+0

Если вы знаете, что вход будет похож на один из примеров, то это все, что вам нужно. Если вы не знаете ввод, то вам все равно нужна проверка. – OIS

Смежные вопросы