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