fork download
  1. <?php
  2. header('Content-type: text/html; charset=utf8');
  3. $wright = array(
  4. '84951234567',
  5. '+74951234567',
  6. '8-495-1-234-567',
  7. ' 8 (8122) 56-56-56',
  8. '8-911-1234567',
  9. '8 (911) 12 345 67',
  10. '8-911 12 345 67',
  11. '8 (911) - 123 - 45 - 67',
  12. '+ 7 999 123 4567',
  13. '8 ( 999 ) 1234567',
  14. '8 999 123 4567'
  15. );
  16. $wrong = array(
  17. '02',
  18. '84951234567 позвать люсю',
  19. '849512345',
  20. '849512345678',
  21. '8 (409) 123-123-123',
  22. '7900123467',
  23. '5005005001',
  24. '8888-8888-88',
  25. '84951a234567',
  26. '8495123456a',
  27. '+1 234 5678901',
  28. '+8 234 5678901',
  29. '7 234 5678901'
  30. );
  31.  
  32. function checkRegExp($pattern, $examples){
  33. $count = count($examples);
  34. for($i = 0; $i < $count; $i++){
  35. if(preg_match($pattern, $examples[$i])){
  36. echo "строка \"{$examples[$i]}\" подходит \n";
  37. }else{
  38. echo "строка \"{$examples[$i]}\" не подходит \n";
  39. }
  40. }
  41. }
  42. $exp1 = '/^\s?(\+\s?7|8)([-\s\(\)]{0,4}\d){10}\s?$/';
  43. checkRegExp($exp1, $wright);
  44. checkRegExp($exp1, $wrong);
Success #stdin #stdout 0.02s 24192KB
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" не подходит