2017-11-14 5 views
-2

Es stellt sich heraus, Prompt gibt immer eine Zeichenfolge zurück, wie kann ich dies überprüfen. Ich versuche einen Namen zu überprüfen, um zu sehen, ob er Zahlen enthält.Wie kann ich diese spezielle Funktion überprüfen?

function getName(){ 
     try{ 
      let name=prompt("please type a name").toLowerCase(); 

      for(let i=0; i<name.length; i++){ 

       if(typeof name[i] != "string"){ 
        throw Error("invalid response"); 
       } 
      } 
      return name; 
     } 
     catch(err){ 
       console.log(err); 
       console.log("please try again"); 
       getName(); 
     } 
    } 
+2

Sie sollten uns weitere Beispiele für gültige und ungültige Eingabeaufforderungen geben. Weil der String 'fdsfdsf123dsfsd' auch Zahlen enthält. –

Antwort

0

Wenn alles, was Sie tun müssen, ist Test, dass es irgendwelche Zahlen in der Zeichenkette, dann können Sie nur eine einfache Regex verwenden, um zu testen dass:

var regex = /\d+/g; 
regex.test(name); // returns true if there are any numbers anywhere in the string 

wenn Sie, wenn es sehen wollen, nur Buchstaben, können Sie es auf diese Weise tun statt:

var regex = /[a-zA-Z]+/g; 
regex.test(name); // returns true only if all characters are letters 
+0

'a-d' anstatt' a-z'? – Andy

+0

@Andy das ist was ich bekomme, um auf Stack vor meinem ersten Kaffee zu kommen. Danke, korrigiert. – Paul

0

Diese Funktion identifiziert ganze Zahl sogar unter Strings

function hasNumbers(t) { 
    return /\d/.test(t); 
} 

hasNumbers ("name") //false 
hasNumbers ("name123") //true 
hasNumbers ("na124me") //true 
Verwandte Themen