fork(1) download
  1. <?php
  2. //Правильные
  3. $numbers = [
  4. "84951234567", "+74951234567", "8-495-1-234-567",
  5. "8 (8122) 56-56-56", "8-911-1234567", "8 (911) 12 345 67",
  6. "8-911 12 345 67", "8 (911) - 123 - 45 - 67", "+ 7 999 123 4567",
  7. "8 ( 999 ) 1234567", "8 999 123 4567", '92346234636', /*Неправильные*/
  8. '02', '84951234567 позвать люсю', '849512345', '849512345678',
  9. '8 (409) 123-123-123', '7900123467', '5005005001', '8888-8888-88',
  10. '84951a234567', '8495123456a',
  11. '+1 234 5678901', /* неверный код страны */
  12. '+8 234 5678901', /* либо 8 либо +7 */
  13. '7 234 5678901' /* нет + */
  14. ];
  15. for ($i = 0; $i < count($numbers); $i++) {
  16. $number = $numbers[$i];
  17. $space = str_replace(" ","",$number); /*Убираю пробелы*/
  18. $bracketStart = str_replace("(", "",$space); /*Убираю скобки*/
  19. $bracketClose = str_replace(")", "",$bracketStart);
  20. $hyphen = str_replace("-", "",$bracketClose); /*Убираю дефис*/
  21. $regexp = "/^8[0-9]{10}$/"; /*Проверка на 8-ку*/
  22. $regexp2 = "/^[+]7[0-9]{10}$/"; /*Проверка на +7*/
  23. $match = array();
  24. if (preg_match($regexp,$hyphen,$match)) { /*8-ки*/
  25. echo "Номер соответствует формату\n";
  26. } elseif (preg_match($regexp2,$hyphen,$match)) { /*7-ки*/
  27. echo "Номер соответствует формату\n";
  28. } else { /*Неформат*/
  29. echo "$hyphen\n";
  30. echo "Номер не соответствует формату\n";
  31. }
  32. }
  33. ?>
Success #stdin #stdout 0.03s 52432KB
stdin
Standard input is empty
stdout
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
Номер соответствует формату
92346234636
Номер не соответствует формату
02
Номер не соответствует формату
84951234567позватьлюсю
Номер не соответствует формату
849512345
Номер не соответствует формату
849512345678
Номер не соответствует формату
8409123123123
Номер не соответствует формату
7900123467
Номер не соответствует формату
5005005001
Номер не соответствует формату
8888888888
Номер не соответствует формату
84951a234567
Номер не соответствует формату
8495123456a
Номер не соответствует формату
+12345678901
Номер не соответствует формату
+82345678901
Номер не соответствует формату
72345678901
Номер не соответствует формату