fork download
  1. <?php
  2.  
  3. $regexpNumber = '/^((\\s*\+\\s*7)|\\s*8)([^a-zA-Z0-9]*[0-9]){10}\b$/';
  4. $regexpSymbol = ['/(\\s*\+\\s*7\\s*)/', '/(\\D*)/'];
  5.  
  6. $numbers = ['+74951234567', '8-495-1-234-567',
  7. ' 8 (8122) 56-56-56', '8-911-1234567', '84951a234567', '8495123456a',
  8. '+1 234 5678901',];
  9.  
  10. $correctNumbers = array();
  11.  
  12. foreach($numbers as $number) {
  13. if(preg_match($regexpNumber, $number)) {
  14. $correctNumbers[] = preg_replace($regexpSymbol, ['8', ''], $number);
  15. }
  16. }
  17.  
  18. echo var_dump($correctNumbers);
Success #stdin #stdout 0.02s 24832KB
stdin
Standard input is empty
stdout
array(4) {
  [0]=>
  string(11) "84951234567"
  [1]=>
  string(11) "84951234567"
  [2]=>
  string(11) "88122565656"
  [3]=>
  string(11) "89111234567"
}