fork download
  1. <?php
  2. function phoneNumberCheck($mobileNumber){
  3. echo "Было так - ".$mobileNumber."\n";
  4. $regexp='/(^ ?8|^\+ ?7)([-() ]*\d){10}$/';
  5. $match = [];
  6. if (preg_match($regexp, $mobileNumber, $match)) {
  7. echo "+ Номер верный '{$match[0]}' \n";
  8. $mobileNumber = str_replace(" ","",$mobileNumber);
  9. $mobileNumber = str_replace("-","",$mobileNumber);
  10. $mobileNumber = str_replace("(","",$mobileNumber);
  11. $mobileNumber = str_replace(")","",$mobileNumber);
  12. $mobileNumber = str_replace("+7","8",$mobileNumber);
  13. echo "Стало так ". $mobileNumber;
  14. } else {
  15. echo "- Ничего не найдено\n";
  16. }
  17. }
  18.  
  19. function phoneNumberCheckRegexp($mobileNumber){
  20. echo "Было так - ".$mobileNumber."\n";
  21. $regexp='/(^ ?8|^\+ ?7)([-() ]*\d){10}$/';
  22. $match = [];
  23. if (preg_match($regexp, $mobileNumber, $match)) {
  24. $pattern = '/[-() ]/';
  25. $replacement = '';
  26. echo "Стало так ".preg_replace($pattern, $replacement, $mobileNumber)."\n";
  27. $pattern = '/(\+ ?7)/';
  28. $replacement = '8';
  29. echo "а потом Стало так ".preg_replace($pattern, $replacement, $mobileNumber)."\n";
  30. } else {
  31. echo "- Номер введён неверно\n";
  32. }
  33. }
  34.  
  35. $correctNumbers = [
  36. '84951234567',
  37. '+74951234567',
  38. '8-495-1-234-567',
  39. '8(911)1234567',
  40. '8 (911) 1234567',
  41. ' 8 (8122) 56-56-56',
  42. '8-911-1234567',
  43. '8 (911) 12 345 67',
  44. '8-911 12 345 67',
  45. '8 (911) - 123 - 45 - 67',
  46. '+ 7 999 123 4567',
  47. '8 ( 999 ) 1234567',
  48. '8 999 123 4567'
  49. ];
  50.  
  51. $incorrectNumbers = [ '02', '84951234567 позвать люсю', '849512345', '849512345678',
  52. '8 (409) 123-123-123', '7900123467', '5005005001', '8888-8888-88',
  53. '84951a234567', '8495123456a','8((((((((((', '8495кря4567','84а97а75п67',
  54. '849512s45678',
  55. '+1 234 5678901', /* неверный код страны */
  56. '+8 234 5678901', /* либо 8 либо +7 */
  57. '7 234 5678901' /* нет + */];
  58.  
  59. echo "-------------------------------------------\n";
  60.  
  61.  
  62. $arCount=count($correctNumbers);
  63. for ($i=0;$i<$arCount;$i++){
  64. echo " ".phoneNumberCheck($correctNumbers[$i])."\n";
  65. }
  66.  
  67. $inarcount=count($incorrectNumbers);
  68. echo "-------------------------------------------\n";
  69. for ($i=0;$i<$inarcount;$i++){
  70. echo " ".phoneNumberCheck($incorrectNumbers[$i])."\n";
  71. }
  72.  
  73. $arCount=count($correctNumbers);
  74. for ($i=0;$i<$arCount;$i++){
  75. echo " ".phoneNumberCheckRegexp($correctNumbers[$i])."\n";
  76. }
  77.  
  78. $inarcount=count($incorrectNumbers);
  79. echo "-------------------------------------------\n";
  80. for ($i=0;$i<$inarcount;$i++){
  81. echo " ".phoneNumberCheckRegexp($incorrectNumbers[$i])."\n";
  82. }
Success #stdin #stdout 0s 52488KB
stdin
Standard input is empty
stdout
-------------------------------------------
Было так - 84951234567
+ Номер верный '84951234567' 
Стало так 84951234567 
Было так - +74951234567
+ Номер верный '+74951234567' 
Стало так 84951234567 
Было так - 8-495-1-234-567
+ Номер верный '8-495-1-234-567' 
Стало так 84951234567 
Было так - 8(911)1234567
+ Номер верный '8(911)1234567' 
Стало так 89111234567 
Было так - 8 (911) 1234567
+ Номер верный '8 (911) 1234567' 
Стало так 89111234567 
Было так -  8 (8122) 56-56-56
+ Номер верный ' 8 (8122) 56-56-56' 
Стало так 88122565656 
Было так - 8-911-1234567
+ Номер верный '8-911-1234567' 
Стало так 89111234567 
Было так - 8 (911) 12 345 67
+ Номер верный '8 (911) 12 345 67' 
Стало так 89111234567 
Было так - 8-911 12 345 67
+ Номер верный '8-911 12 345 67' 
Стало так 89111234567 
Было так - 8 (911) - 123 - 45 - 67
+ Номер верный '8 (911) - 123 - 45 - 67' 
Стало так 89111234567 
Было так - + 7 999 123 4567
+ Номер верный '+ 7 999 123 4567' 
Стало так 89991234567 
Было так - 8 ( 999 ) 1234567
+ Номер верный '8 ( 999 ) 1234567' 
Стало так 89991234567 
Было так - 8 999 123 4567
+ Номер верный '8 999 123 4567' 
Стало так 89991234567 
-------------------------------------------
Было так - 02
- Ничего не найдено
 
Было так - 84951234567 позвать люсю
- Ничего не найдено
 
Было так - 849512345
- Ничего не найдено
 
Было так - 849512345678
- Ничего не найдено
 
Было так - 8 (409) 123-123-123
- Ничего не найдено
 
Было так - 7900123467
- Ничего не найдено
 
Было так - 5005005001
- Ничего не найдено
 
Было так - 8888-8888-88
- Ничего не найдено
 
Было так - 84951a234567
- Ничего не найдено
 
Было так - 8495123456a
- Ничего не найдено
 
Было так - 8((((((((((
- Ничего не найдено
 
Было так - 8495кря4567
- Ничего не найдено
 
Было так - 84а97а75п67
- Ничего не найдено
 
Было так - 849512s45678
- Ничего не найдено
 
Было так - +1 234 5678901
- Ничего не найдено
 
Было так - +8 234 5678901
- Ничего не найдено
 
Было так - 7 234 5678901
- Ничего не найдено
 
Было так - 84951234567
Стало так 84951234567
а потом Стало так 84951234567
 
Было так - +74951234567
Стало так +74951234567
а потом Стало так 84951234567
 
Было так - 8-495-1-234-567
Стало так 84951234567
а потом Стало так 8-495-1-234-567
 
Было так - 8(911)1234567
Стало так 89111234567
а потом Стало так 8(911)1234567
 
Было так - 8 (911) 1234567
Стало так 89111234567
а потом Стало так 8 (911) 1234567
 
Было так -  8 (8122) 56-56-56
Стало так 88122565656
а потом Стало так  8 (8122) 56-56-56
 
Было так - 8-911-1234567
Стало так 89111234567
а потом Стало так 8-911-1234567
 
Было так - 8 (911) 12 345 67
Стало так 89111234567
а потом Стало так 8 (911) 12 345 67
 
Было так - 8-911 12 345 67
Стало так 89111234567
а потом Стало так 8-911 12 345 67
 
Было так - 8 (911) - 123 - 45 - 67
Стало так 89111234567
а потом Стало так 8 (911) - 123 - 45 - 67
 
Было так - + 7 999 123 4567
Стало так +79991234567
а потом Стало так 8 999 123 4567
 
Было так - 8 ( 999 ) 1234567
Стало так 89991234567
а потом Стало так 8 ( 999 ) 1234567
 
Было так - 8 999 123 4567
Стало так 89991234567
а потом Стало так 8 999 123 4567
 
-------------------------------------------
Было так - 02
- Номер введён неверно
 
Было так - 84951234567 позвать люсю
- Номер введён неверно
 
Было так - 849512345
- Номер введён неверно
 
Было так - 849512345678
- Номер введён неверно
 
Было так - 8 (409) 123-123-123
- Номер введён неверно
 
Было так - 7900123467
- Номер введён неверно
 
Было так - 5005005001
- Номер введён неверно
 
Было так - 8888-8888-88
- Номер введён неверно
 
Было так - 84951a234567
- Номер введён неверно
 
Было так - 8495123456a
- Номер введён неверно
 
Было так - 8((((((((((
- Номер введён неверно
 
Было так - 8495кря4567
- Номер введён неверно
 
Было так - 84а97а75п67
- Номер введён неверно
 
Было так - 849512s45678
- Номер введён неверно
 
Было так - +1 234 5678901
- Номер введён неверно
 
Было так - +8 234 5678901
- Номер введён неверно
 
Было так - 7 234 5678901
- Номер введён неверно