Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błąd funkcji Number.isInteger
Quan1
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.10.2016

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


Cytat
Witam Serdecznie,

Wszystko zaczęło się od napisania poniższego kodu:
Kod
<script type="text/javascript">

    
var r = prompt("Podaj swoj pesel")
var n = r.length;
var b = Number.isInteger(r);

if(n>11){
document.write("Podales za duzo liczb w peselu");
}
else
if(n<11)
{
document.write("Podales za malo liczb w peselu");
}
else
if(n == 11)
{
document.write("Pesel zostal prawidlowo wprowadzony");
}
else
if(b == false)
{
document.write("W peselu znajduja sie litery, popraw to!");
}

</script>

Oczywiście ma być to najprostszy skrypt do sprawdzania "powiedzmy" peselu, wcześniej poradzono mi aby sprawdzać czy użytkownik wpisał litery czy cyfry przez Number.isInteger, tak robię na "brudno" czyli:'

Kod
<script type="text/javascript">

var c = 123;
var b = Number.isInteger(c);
document.write(b);


Tutaj wszystko działa, jeżeli podam liczbę dostaje wartość true, jeżeli podam litery wyskakuje false, poradzono mi, że mam błędy w ifach, niestety po usunięciu całego kodu odpowiadającego za ify dalej po podaniu każdej liczby wyskakuje cały czas false, udało mi się dojść do tego, że dzieje się to poprzez wprowadzanie przez prompt, co mogło by być nie tak ?

Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Mógłbyś uporządkować te ify.
Ale skoro tak póki co ma być, to co jest nie tak? Dla 0123456789 otrzymuję prawidłowe info.


--------------------
Go to the top of the page
+Quote Post
Quan1
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.10.2016

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


Cytat(trueblue @ 1.10.2016, 22:54:34 ) *
Mógłbyś uporządkować te ify.
Ale skoro tak póki co ma być, to co jest nie tak? Dla 0123456789 otrzymuję prawidłowe info.


Generalnie chodziło oto, że musiałem przekonwertować tekst na liczbę, już to zrobiłem kod poniżej:
Cytat
<script type="text/javascript">

var str = prompt('Podaj liczbę');
var num = +str;
var a = Number.isInteger(num);
var b = str.length;

document.write(a);

if(b>11){
document.write("Podales za duzp liczb");
}
else
if(b<11){
document.write("Podales za malo liczb");
}
else
if(a == false){

document.write("Wszystko jest ok");
}


</script>


Tylko teraz mam problem z tym w jaki sposób jeżeli wartość a będzie miała odpowiedź true żeby była wyświetlana informacja "Wszystko jest ok" ?
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zmienić ostatni warunek?


--------------------
Go to the top of the page
+Quote Post
Quan1
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.10.2016

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


Przestawiłem go na sam początek i już działa, tylko tutaj powstał kolejny problem, w jaki sposób mogę tak zrobić gdy jak wpiszę trzy litery to nie były wyświetlane dwie informację czyli o tym, że pisałem litery zamiast cyfr oraz o tym, że wpisałem za mało znaków ? Można do ifa jakiś parametr and dodać?
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Zrób to po prostu:

if (długość == 11) { cośtam dalej}
else {komunikat błędu}


--------------------
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 13:47