2010-08-10 8 views
1

Comment puis-je modifier les éléments suivants à quelques numérosreg ex numéro de téléphone

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

Je veux que le produit final soit 19999999999

+0

double possible [Une regex complète pour la validation du numéro de téléphone] (http://stackoverflow.com/questions/123559/a- global-regex-for-phone-number-validation) – JYelton

Répondre

2

La meilleure façon serait de dépouiller tout de votre chaîne est pas un numéro, puis voir si vous vous retrouvez avec un numéro à 10 chiffres (ou 11 si vous faites le 1 obligatoire):

$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 chiffres pour international – CaffGeek

+0

Oui, mais je vais sur les formats qu'il a fournis. –

2

essayer

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

Ceci permet de filtrer les non-chiffres.

0

Vous avez vraiment pas besoin regex pour cette ...

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

Qu'en est-il des choses comme 'x',' ext', '.',' + ', etc – CaffGeek

+0

Si vous savez que l'entrée sera comme l'un des exemples, c'est tout ce dont vous avez besoin. Si vous ne connaissez pas l'entrée, vous avez besoin de plus de validation de toute façon. – OIS

0
preg_replace('[\D*]', '', '1-(999)-999-9999');