fork(1) download
  1. <?php
  2.  
  3. $regexp = "/^\s?(8|[+]\s?7)(\s?-?\s?[(]?\s?\d\s?[)]?\s?-?\s?){10}$/";
  4.  
  5. $goodNumbers = ["8-911-123-22-22", "89111232241",
  6. "+7-333-123-44-22", "+7-444-222-4444",
  7. "8(444)234-2222", "8-(123)-999-12-23",
  8. "+7(222)-2334444", "8-123-123-213-4",
  9. "8-911-44-888-21", "8 911 444 33 33",
  10. "8 (911) 555 44 44", "8 - 888 - 899 - 44 - 33",
  11. '84951234567', '+74951234567', '8-495-1-234-567',
  12. ' 8 (8122) 56-56-56', '8-911-1234567',
  13. '8 (911) 12 345 67', '8-911 12 345 67',
  14. '8 (911) - 123 - 45 - 67', '+ 7 999 123 4567',
  15. '8 ( 999 ) 1234567', '8 999 123 4567'
  16. ];
  17.  
  18. $badNumbers = ["9-123-123-213-4", "666-666-666-11", "913-555-2244",
  19. "8-911-33-44-66",'02', '84951234567 позвать люсю',
  20. '849512345', '849512345678','8 (409) 123-123-123',
  21. '7900123467', '5005005001', '8888-8888-88',
  22. '84951a234567', '8495123456a',
  23. '+1 234 5678901', // неверный код страны
  24. '+8 234 5678901', // либо 8 либо +7
  25. '7 234 5678901' // нет +
  26. ];
  27.  
  28.  
  29. echo "Проверка правильных телефонов:\n";
  30. foreach ($goodNumbers as $phone) {
  31. if (preg_match($regexp, $phone)) {
  32. echo "$phone - правильный номер\n";
  33. } else {
  34. echo "$phone - неправильный номер\n";
  35. }
  36. }
  37. echo "Проверка неправильных телефонов:\n";
  38. foreach ($badNumbers as $phone) {
  39. if (preg_match($regexp, $phone)) {
  40. echo "$phone - правильный номер\n";
  41. } else {
  42. echo "$phone - неправильный номер\n";
  43. }
  44. }
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Проверка правильных телефонов:
8-911-123-22-22 - правильный номер
89111232241 - правильный номер
+7-333-123-44-22 - правильный номер
+7-444-222-4444 - правильный номер
8(444)234-2222 - правильный номер
8-(123)-999-12-23 - правильный номер
+7(222)-2334444 - правильный номер
8-123-123-213-4 - правильный номер
8-911-44-888-21 - правильный номер
8 911 444 33 33 - правильный номер
8 (911) 555 44 44 - правильный номер
8 - 888 - 899 - 44 - 33 - правильный номер
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 - правильный номер
Проверка неправильных телефонов:
9-123-123-213-4 - неправильный номер
666-666-666-11 - неправильный номер
913-555-2244 - неправильный номер
8-911-33-44-66 - неправильный номер
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 - неправильный номер