fork download
  1. <?php
  2.  
  3. function checkNumber($number) {
  4. $regexp = '/^ ?(8|\\+ ?7)([\\s-()]*\\d){10}$/';
  5. if (preg_match($regexp, $number)) {
  6. echo "Номер корректный\n";
  7. $result = preg_replace('/\\D/', '', $number);
  8. $result = '8'.mb_substr($result, 1);
  9. echo "В нормальном виде - {$result}\n";
  10. } else {
  11. echo "Неверный формат ввода\n";
  12. }
  13. }
  14.  
  15. $correct = array('84951234567', '+74951234567', '8-495-1-234-567', ' 8 (8122) 56-56-56', '8-911-1234567', '8 (911) 12 345 67', '8-911 12 345 67', '8 (911) - 123 - 45 - 67', '+ 7 999 123 4567', '8 ( 999 ) 1234567', '8 999 123 4567');
  16.  
  17. $incorrect = array('02', '84951234567 позвать люсю', '849512345', '849512345678',
  18. '8 (409) 123-123-123', '7900123467', '5005005001', '8888-8888-88',
  19. '84951a234567', '8495123456a',
  20. '+1 234 5678901', // неверный код страны
  21. '+8 234 5678901', // либо 8 либо +7
  22. '7 234 5678901' // нет +
  23. );
  24.  
  25. foreach ($correct as $number) {
  26. checkNumber($number);
  27. }
  28. echo "-------\n";
  29. foreach ($incorrect as $number) {
  30. checkNumber($number);
  31. }
  32. ?>
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Номер корректный
В нормальном виде - 84951234567
Номер корректный
В нормальном виде - 84951234567
Номер корректный
В нормальном виде - 84951234567
Номер корректный
В нормальном виде - 88122565656
Номер корректный
В нормальном виде - 89111234567
Номер корректный
В нормальном виде - 89111234567
Номер корректный
В нормальном виде - 89111234567
Номер корректный
В нормальном виде - 89111234567
Номер корректный
В нормальном виде - 89991234567
Номер корректный
В нормальном виде - 89991234567
Номер корректный
В нормальном виде - 89991234567
-------
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода
Неверный формат ввода