fork download
  1. <?php
  2.  
  3.  
  4. $regexp = '!^(\+7|8)[0-9\s-\(\)]!';
  5.  
  6. $correctNumber = array(
  7. '84951234567',
  8. '+74951234567',
  9. '8-495-1-234-567',
  10. ' 8 (8122) 56-56-56',
  11. '8-911-1234567',
  12. '8 (911) 12 345 67',
  13. '8-911 12 345 67',
  14. '8 (911) - 123 - 45 - 67',
  15. '+ 7 999 123 4567',
  16. '8 ( 999 ) 1234567',
  17. '8(999)599-555-22',
  18. '8 999 123 4567', );
  19. $wrongNumber = array(
  20. '02',
  21. '9+',
  22. ' ',
  23. 'abcdefg',
  24. '84951234567 позвать люсю',
  25. '849512345',
  26. '849512345678',
  27. '8 (409) 123-123-123',
  28. '7900123467',
  29. '5005005001',
  30. '8888-8888-88',
  31. '84951a234567',
  32. '8495123456a',
  33. '+1 234 5678901',
  34. '+8 234 5678901',
  35. '7 234 5678901', );
  36.  
  37. echo "Верные номера.\n\n";
  38.  
  39. for ($i = 0; $i < count($correctNumber); $i++) {
  40. if (preg_match($regexp, $correctNumber[$i])) {
  41. echo "[+] Номер \"{$correctNumber[$i]}\" записан верно.\n";
  42. } else {
  43. echo "[-] Номер \"{$correctNumber[$i]}\" записан не верно.\n";
  44. }
  45. }
  46.  
  47. echo "\nНеверные номера.\n\n";
  48.  
  49. for ($i = 0; $i < count($wrongNumber); $i++) {
  50. if (preg_match($regexp, $wrongNumber[$i])) {
  51. echo "[+] Номер \"{$wrongNumber[$i]}\" записан верно.\n";
  52. } else {
  53. echo "[-] Номер \"{$wrongNumber[$i]}\" записан не верно.\n";
  54. }
  55. }
Success #stdin #stdout 0.01s 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)599-555-22" записан верно.
[+] Номер "8 999 123 4567" записан верно.

Неверные номера.

[-] Номер "02" записан не верно.
[-] Номер "9+" записан не верно.
[-] Номер "  " записан не верно.
[-] Номер "abcdefg" записан не верно.
[+] Номер "84951234567 позвать люсю" записан верно.
[+] Номер "849512345" записан верно.
[+] Номер "849512345678" записан верно.
[+] Номер "8 (409) 123-123-123" записан верно.
[-] Номер "7900123467" записан не верно.
[-] Номер "5005005001" записан не верно.
[+] Номер "8888-8888-88" записан верно.
[+] Номер "84951a234567" записан верно.
[+] Номер "8495123456a" записан верно.
[-] Номер "+1 234 5678901" записан не верно.
[-] Номер "+8 234 5678901" записан не верно.
[-] Номер "7 234 5678901" записан не верно.