fork download
  1. <?php
  2. $wrightNumbers = array(
  3. '84951234567',
  4. '+74951234567',
  5. '8-495-1-234-567',
  6. ' 8 (8122) 56-56-56',
  7. '8-911-1234567',
  8. '8 (911) 12 345 67',
  9. '8-911 12 345 67',
  10. '8 (911) - 123 - 45 - 67',
  11. '+ 7 999 123 4567',
  12. '8 ( 999 ) 1234567',
  13. '8 999 123 4567'
  14. );
  15. $wrongNumbers = array(
  16. '02',
  17. '84951234567 позвать люсю',
  18. '849512345',
  19. '849512345678',
  20. '8 (409) 123-123-123',
  21. '7900123467',
  22. '5005005001',
  23. '8888-8888-88',
  24. '84951a234567',
  25. '8495123456a',
  26. '+1 234 5678901', // неверный код страны
  27. '+8 234 5678901', // либо 8 либо +7
  28. '7 234 5678901' // нет +
  29. );
  30.  
  31. function validatePhones(array $numbers)
  32. {
  33. $regExp = '/^\s?(8|\+\s?7)\s?-?\s?\(?(\s?-?\s?\d\s?\)?\s?-?\s?){10}$/';
  34. foreach ($numbers as $number) {
  35. if (preg_match($regExp, $number)) {
  36. echo "+ Номер \"$number\" прошел проверку. +\n";
  37. } else {
  38. echo "- Номер \"$number\" НЕ прошел проверку. -\n";
  39. }
  40. }
  41. echo "==================================================\n";
  42. }
  43.  
  44. validatePhones($wrightNumbers);
  45. validatePhones($wrongNumbers);
Success #stdin #stdout 0.02s 24144KB
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" НЕ прошел проверку. -
==================================================