W jaki sposób mogę sprawdzić jaką użytkownik wprowadził wartość(liczba, tekst) oprócz wykorzystanie metody isNaN
- Rejestracja:ponad 7 lat
- Ostatnio:26 dni
- Postów:639

- Rejestracja:około 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394

- Rejestracja:prawie 6 lat
- Ostatnio:około 23 godziny
- Postów:57
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
Tylko liczby '^[0-9]+$'
Tylko litery ^^[a-zA-Z]+$'
- Rejestracja:ponad 7 lat
- Ostatnio:26 dni
- Postów:639
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ść"
function checkValueNumber(number) {
if (typeof(number) === "number") {
alert("Podałeś dobrą wartość");
} else if(isNaN(number)) {
alert("Podałeś złą wartość wartość");
}
}

- Rejestracja:około 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394
No to zmień komunikat po warunki, na taki, jaki chcesz tu uzyskać.
A w drugiej części zostaw samo else.

- Rejestracja:około 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394
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ą:
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.
- Rejestracja:ponad 7 lat
- Ostatnio:26 dni
- Postów:639
Co może być nie tak ? Cały czas wyświetla "Wprowadzona wartość nie jest liczbą"
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ą");
}
}

- Rejestracja:około 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394
Tak:
var number_str = prompt("podaj numer");
var number_nmb = number_str * 1;
if ((number_nmb>0) || (number_str==="0")) {
alert("dobrze");
} else {
alert("zle");
}

- Rejestracja:około 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394
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.