Sprawdzenie wprowadzonej przez użytkownika wartości

Sprawdzenie wprowadzonej przez użytkownika wartości
P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 640
0

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

Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3394
Nalhin
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: London
  • Postów: 121
2

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

Tylko liczby '^[0-9]+$'
Tylko litery ^^[a-zA-Z]+$'

P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 640
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ść");
    }
}

Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3394
1

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

Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • 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
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 640
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ą");
    }
}

Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • 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");
}
Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • 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.