2016-03-19 14 views
0

Ich versuche, ein einfaches Programm zu erstellen, das die Anzahl der Stunden vom Benutzer in Sekunden konvertiert, und fordert den Benutzer Stunden neu eingeben, wenn er eine Zeichenfolge bereitstellt.Es funktioniert gut, wenn ich Geben Sie eine nicht positive Zahl ein, aber keine Nachricht, wenn ein Zeichenfolgenwert eingegeben wurde. Hier ist der Code:Konvertieren Zeichenfolge in die Anzahl der Sekunden

 function convertToSeconds() { 
      var d = prompt("Enter any hour between 0-24","4"); 
      if (d<0){ 
       alert("Please enter a number greater than zero"); 
       convertToSeconds(); 
      } 
      else if(typeof d == String) { 
       /*Problem seems to be here*/ 
       alert(d + " is not a valid number"); 
       convertToSeconds(); 
      } 
      else { 
      var seconds = 3600*parseFloat(d); 
      document.write(seconds); 
      } 
     }; 
     convertToSeconds(); 

Antwort

0

Nur ein Problem mit Ihrem Code. typeof "any string" = "string" nicht String, auch JS erzwingt eine Zahl in einem String-Format standardmäßig auf eine Zahl, daher würde ich empfehlen, nach einer Zeichenfolge vor der Nummer zu suchen.

function convertToSeconds() { 
var d = prompt("Enter any hour between 0-24","4"); 

    if (d<0){ 
     alert("Please enter a number greater than zero"); 
     convertToSeconds(); 
    }   
    else if(isNaN(d)) { 
     /*Problem seems to be here*/ 
     alert(d + "is not a valid number"); 
     convertToSeconds(); 
    } 
    else { 
    var seconds = 3600*parseFloat(d); 
    document.write(seconds); 
    } 
}; 
convertToSeconds(); 
+0

! Mist. Redigiert danke. – Pbd

+0

das hat nicht funktioniert..nun wenn der Benutzer eine Ziffer eingibt, heißt es immer noch: 4 ist keine gültige Nummer – Rashid

1

Die Aufforderung Methode nur kehrt Saiten. Sie müssen, wenn die Zeichenfolge bestimmen, kann zwischen 0 und 24, so auf eine positive ganze Zahl umgewandelt werden:

var d = prompt('Enter any hour between 0-24'); 
 

 
if (/^(1?[0-9]|2[0-4])$/.test(d)) { 
 
    alert('looks good'); 
 
} else { 
 
    alert('don\'t like that'); 
 
}

oder man könnte so etwas wie: ja

var d = Number(prompt('Enter any hour between 0-24')); 
if (d == parseInt(d) && d > -1 && d < 25 { 
    // ok 
} 
    // not ok 
} 
Verwandte Themen