Sprawdzenie wprowadzonej przez użytkownika wartości

Sprawdzenie wprowadzonej przez użytkownika wartości
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:26 dni
  • Postów:639
0

W jaki sposób mogę sprawdzić jaką użytkownik wprowadził wartość(liczba, tekst) oprócz wykorzystanie metody isNaN

lion137
Pokaż jakiś kod, jak to wygląda?
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Nalhin
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 23 godziny
  • Postów:57
2
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:26 dni
  • Postów:639
0

Tutaj napisałem taki kod ale za każdym razem kiedy wprowadzam liczbę pojawia się komunikat "Podałeś złą wartość wartość". Ten komunikat działa prawidłowo jeżeli wprowadzam tekst. Dla liczb powinien pojawić się komunikat "Podałeś dobrą wartość"

Kopiuj
function checkValueNumber(number) {
    if (typeof(number) === "number") {
        alert("Podałeś dobrą wartość");
    } else if(isNaN(number)) {
        alert("Podałeś złą wartość wartość");
    }
}

edytowany 1x, ostatnio: piotrek1998
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

No to zmień komunikat po warunki, na taki, jaki chcesz tu uzyskać.
A w drugiej części zostaw samo else.


P1
Ale wiesz chce wyświetlać komunikat zależnie od sytuacji jak wprowadzi tekst no to nieprawidłowa wartość a jak liczba to prawidłowa
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Odnośnie samego IF-a. Robisz jeden warunek, sprawdzasz czy wartość go spełnia i wtedy jest ok, a jeśli nie spełnia, to nie jest ok i wtedy wykonujesz część alternatywną:

Kopiuj
    if (typeof(number) === "number") {
        alert("Podałeś dobrą wartość");
    } else {
        alert("Podałeś złą wartość wartość");
    }

Ale swoją drogą, właśnie do mnie dotarło, że każda wartość wprowadzona przez użytkownika będzie najprawdopodobniej stringiem. Musiałbyś to przeliczyć na wartość liczbową, sprawdzić, czy jest większe od zera i jeszcze sprawdzić czy !="0" i dopiero coś by z tego było.


P1
Odnośnie tego co tu jest napisane "Ale swoją drogą, właśnie do mnie dotarło, że każda wartość wprowadzona przez użytkownika będzie najprawdopodobniej stringiem. Musiałbyś to przeliczyć na wartość liczbową, sprawdzić, czy jest większe od zera i jeszcze sprawdzić czy !="0" i dopiero coś by z tego było." też tak pomyślałem i odnosząc się do tego musiałbym sparsować wartości liczbowe za pomocą parseInt i wykonać resztę tego co ty napisałaś ?
P1
Musiałbym utworzyć if-a w if-ie ?
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:26 dni
  • Postów:639
0

Co może być nie tak ? Cały czas wyświetla "Wprowadzona wartość nie jest liczbą"

Kopiuj
function checkValueNumber(number) {
    if(typeof(number) === parseInt(number)) {
        if (number > 0 && number !== 0) {
            alert("Wprowadzona wartość jest liczbą");            
        }
    } else {
        alert("Wprowadzona wartość nie jest liczbą");
    }
}

edytowany 1x, ostatnio: piotrek1998
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Tak:

Kopiuj
var number_str = prompt("podaj numer");
var number_nmb = number_str * 1;

if ((number_nmb>0) || (number_str==="0")) {
    alert("dobrze");
} else {
    alert("zle");
}

P1
Czemu number_str * 1 nie można parseInt(number_str). A poza tym napisałem coś takiego ``` function checkValueNumber(number) { let numberValueIsOK = parseInt(number); if (numberValueIsOK >= "0") { alert("Dobrze"); } else { alert("Źle"); } } ``` i nadal wyświetla źle nie ważne co wprowadze czy liczba czy string
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

x = x * 1; - Bo szybciej i nie muszę polecenia pamiętać.

Porównujesz zmienną ze stringiem:
(numberValueIsOK >= "0")
to nie ma sensu.


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.