fork download
  1. <?php
  2.  
  3.  
  4. $regexp = '!^\\s?(\\+\\s?7|8)(\\s?-?\\s?\\(?\\s?[0-9]\\s?\\)?\\s?-?\\s?){10}$!';
  5.  
  6. $inputData = array(
  7. '84951234567', '+74951234567', '8-495-1-234-567', ' 8 (8122) 56-56-56', '8-911-1234567', '8 (911) 12 345 67',
  8. '8 (911) - 123 - 45 - 67', '+ 7 999 123 4567', '8 ( 999 ) 1234567', '8 999 123 4567', '8-911 12 345 67',
  9. '02', '84951234567 позвать люсю', '849512345', '849512345678', '8 (409) 123-123-123', '7900123467',
  10. '5005005001', '8888-8888-88', '84951a234567', '8495123456a',
  11. '+1 234 5678901', // неверный код страны
  12. '+8 234 5678901', // либо 8 либо +7
  13. '7 234 5678901' // нет +
  14. );
  15.  
  16. $u = 0;
  17.  
  18. for ($i = 1; $i <= count($inputData); $i++) {
  19. if (preg_match($regexp, $inputData[$u])) {
  20. echo "Номер {$inputData[$u]} - верен.\n";
  21. $u++;
  22. } else {
  23. echo "Номер {$inputData[$u]} - НЕ верен.\n";
  24. $u++;
  25. }
  26. }
  27.  
  28. ?>
Success #stdin #stdout 0.02s 24192KB
stdin
Standard input is empty
stdout
Номер 84951234567 - верен.
Номер +74951234567 - верен.
Номер 8-495-1-234-567 - верен.
Номер  8 (8122) 56-56-56 - верен.
Номер 8-911-1234567 - верен.
Номер 8 (911) 12 345 67 - верен.
Номер 8 (911) - 123 - 45 - 67 - верен.
Номер + 7 999 123 4567 - верен.
Номер 8 ( 999 ) 1234567 - верен.
Номер 8 999 123 4567 - верен.
Номер 8-911 12 345 67 - верен.
Номер 02 - НЕ верен.
Номер 84951234567 позвать люсю - НЕ верен.
Номер 849512345 - НЕ верен.
Номер 849512345678 - НЕ верен.
Номер 8 (409) 123-123-123 - НЕ верен.
Номер 7900123467 - НЕ верен.
Номер 5005005001 - НЕ верен.
Номер 8888-8888-88 - НЕ верен.
Номер 84951a234567 - НЕ верен.
Номер 8495123456a - НЕ верен.
Номер +1 234 5678901 - НЕ верен.
Номер +8 234 5678901 - НЕ верен.
Номер 7 234 5678901 - НЕ верен.