fork download
  1. <?php
  2.  
  3.  
  4. $correctNumbers = [
  5. '84951234567', '+74951234567', '8-495-1-234-567',
  6. ' 8 (8122) 56-56-56', '8-911-1234567', '8 (911) 12 345 67',
  7. '8-911 12 345 67', '8 (911) - 123 - 45 - 67', '+ 7 999 123 4567',
  8. '8 ( 999 ) 1234567', '8 999 123 4567'
  9. ];
  10.  
  11. $incorrectNumbers = [
  12. '02', '84951234567 позвать люсю', '849512345', '849512345678',
  13. '8 (409) 123-123-123', '7900123467', '5005005001', '8888-8888-88',
  14. '84951a234567', '8495123456a',
  15. '+1 234 5678901', /* неверный код страны */
  16. '+8 234 5678901', /* либо 8 либо +7 */
  17. '7 234 5678901' /* нет + */
  18. ];
  19.  
  20. $allNumbers = [$correctNumbers, $incorrectNumbers];
  21. $pattern = "/^\\s?(8|\\+\\s?7)([\\s\\(-]*\\d[\\s\\)-]*){10}$/";
  22.  
  23. foreach ($allNumbers as $oneOflists) {
  24. foreach ($oneOflists as $number) {
  25. if (preg_match($pattern, $number)) {
  26. echo "Номер '{$number}' введен верно!\n";
  27. } else {
  28. echo "Номер '{$number}' введен неверно!\n";
  29. }
  30. }
  31. }
Success #stdin #stdout 0.02s 23704KB
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 12 345 67' введен верно!
Номер '8 (911) - 123 - 45 - 67' введен верно!
Номер '+ 7 999 123 4567' введен верно!
Номер '8 ( 999 ) 1234567' введен верно!
Номер '8 999 123 4567' введен верно!
Номер '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' введен неверно!