Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> CharAt
topcio
post 4.02.2018, 21:16:33
Post #1





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 14.01.2017

Ostrzeżenie: (0%)
-----


Hej

Chcę sprawdzić poprawność adresu IP.
Chcę wykorzystać do tego metodę charAt, ale jak wiadomo IP może się zawierać w 1 do 3 znaków na każde pole,
czy to jest poprawnie napisane do ustawienia zmiennej, bo wydaje mi się, że nie. A jeśli nie to jak powinno to wyglądać

[JAVASCRIPT] pobierz, plaintext
  1. var delimiter = input.charAt(1) || input.charAt(2) || input.charAt(3);
[JAVASCRIPT] pobierz, plaintext


Z góry dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
topcio
post 5.02.2018, 23:08:32
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 14.01.2017

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 5.02.2018, 22:20:32 ) *
Oj tak, szczególnie tego długiego cienkiego biggrin.gif

A mówiąc poważnie, Twój kod to koszmar. Zupełnie nieczytelny i bez sensu rozlazły. Dlaczego nie ułatwisz sobie życia i nie użyjesz wyrażenia regularnego? Całą sprawę ze sprawdzaniem IP mógłbyś załatwić jedną linijką, choć lepiej moim zdaniem sprawdzić wyrażeniem regularnym ogólną strukturę: ^\d{1,3}(?:\.\d{1,3}){3}$ i potem posprawdzać elegancko czy te liczby nie przekraczają 255.


Czemu uważasz że koszmar, co jest tam nie tak. Co jest wg Ciebie nie czytelne? IPV6 mnie nie interesuje w tym przypadku.
Troszkę go skróciłem, ale nic nie zmieniałem tongue.gif

  1. if ( $("#dvr_wan_ip_adress").parents("#dvr_register_form").length == 1 ) {
  2. if ( $('#dvr_wan_ip_adress').val().length == 0 ) {
  3. ValidatorID = $( '#dvr_wan_ip_adress' );
  4. Info_Message = "Należy Podać Adres IP WAN Rejestratora !!!";
  5. Error_Message();
  6. return false;
  7. };
  8. if ( $('#dvr_wan_ip_adress').val().length != 0 ) {
  9. var validChars = "0123456789";
  10. var input = $( '#dvr_wan_ip_adress' ).val();
  11. var ip_address = input.length >= 7 && input.length <= 16;
  12. ValidatorID = "Adres IP ma Niepoprawną Wartość !!!";
  13. if(ip_address) {
  14. var dot_count = 0;
  15. for ( var i = 0; i < input.length; i++ ) {
  16. if (input[i]=='.') {
  17. dot_count++;
  18. }
  19. }
  20. if (dot_count === 3) {
  21. var delimiter_1 = input.indexOf( ".", 0 );
  22. var delimiter_2 = input.indexOf( ".", delimiter_1 + 1);
  23. var delimiter_3 = input.indexOf( ".", delimiter_2 + 1);
  24. var delimiter_4 = input.length;
  25. var section_1 = delimiter_1;
  26. if (section_1 >= 1 && section_1 <= 3) {
  27. var section_2 = delimiter_2 - delimiter_1 - 1;
  28. if (section_2 >= 1 && section_2 <= 3) {
  29. var section_3 = delimiter_3 - delimiter_2 - 1;
  30. if (section_3 >= 1 && section_3 <= 3) {
  31. var section_4 = delimiter_4 - delimiter_3 - 1;
  32. if (section_4 >= 1 && section_4 <= 3) {
  33. var pairs = input.split(".");
  34. for ( var i=0, psl = pairs.length, pair, j; i < psl; i++ ) {
  35. pair = pairs[i];
  36. for ( j = 0; j < pair.length; j++) {
  37. if ( validChars.indexOf( pair.charAt(j) ) === -1 ) { Error_Message(); return false; }
  38. }
  39. if ( pair > 255 ) { Error_Message(); return false; }
  40. }
  41. }
  42. } else { Error_Message(); return false; }
  43. } else { Error_Message(); return false; }
  44. } else { Error_Message(); return false; }
  45. } else { Error_Message(); return false; }
  46. } else { Error_Message(); return false; }
  47. }
  48. };
Go to the top of the page
+Quote Post

Posty w temacie
- topcio   CharAt   4.02.2018, 21:16:33
- - trueblue   http://php.net/manual/en/function.filter-var.php h...   4.02.2018, 21:29:15
- - SmokAnalog   Cytat(topcio @ 4.02.2018, 21:16:33 ) ...   5.02.2018, 01:27:09
- - topcio   Zrobiłem Tak [PHP] pobierz, plaintext if...   5.02.2018, 02:05:31
- - trueblue   Cytat(topcio @ 5.02.2018, 02:05:31 ) ...   5.02.2018, 08:16:12
- - topcio   Cieszę się, bo siedziałem nad tym pół nocy. Tamte ...   5.02.2018, 11:24:18
- - SmokAnalog   Przyszła mi ochota na kuchnię włoską.   5.02.2018, 18:47:27
- - topcio   Cytat(SmokAnalog @ 5.02.2018, 18:47:2...   5.02.2018, 19:14:51
- - SmokAnalog   Oj tak, szczególnie tego długiego cienkiego A mó...   5.02.2018, 22:20:32
- - viking   Jest jeszcze ipv6   5.02.2018, 22:23:01
- - topcio   Cytat(SmokAnalog @ 5.02.2018, 22:20:3...   5.02.2018, 23:08:32
- - SmokAnalog   To jest typowy kod spaghetti. Masz osobne zmienne ...   5.02.2018, 23:36:52
- - topcio   Wiesz, uczę się i wg mnie myślę że dobrze mi idzie...   5.02.2018, 23:43:39
- - SmokAnalog   Ale od tego są kursy, a nie forum. Jeśli wchodzę n...   5.02.2018, 23:47:08
- - topcio   a powiedz mi proszę, czy poniższy kod też byś jako...   6.02.2018, 01:27:40
- - SmokAnalog   Tak, ten kod też bym uprościł. Kilka uwag na począ...   6.02.2018, 01:51:24
- - topcio   Ok dzięki. 1. Sprawdzam czy formularz istnieje bo...   6.02.2018, 02:11:19
- - SmokAnalog   Możesz to uprościć w tym stylu: [JAVASCRIPT] pobi...   6.02.2018, 02:30:30
- - topcio   nie znałem jeszcze takiego sposobu, ale wygląda zn...   6.02.2018, 02:37:17
- - SmokAnalog   Ten kod mógłby być poprawiony w prawie każdej lini...   6.02.2018, 02:40:15
- - topcio   mam w panelu klient diva o id message i do tego di...   6.02.2018, 03:05:36


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.05.2024 - 08:40