Ich versuche zu überprüfen, ob Benutzereingaben, die einer Variablen zugewiesen sind, überprüft werden können, um sicherzustellen, dass es sich um eine Zeichenfolge und nicht um eine Zahl handelt. Ich habe versucht, typeof()
zu verwenden, aber egal was, die Benutzereingabe wird als eine Zeichenfolge markiert, selbst wenn der Benutzer eine Nummer eingibt. Zum Beispiel:
Gibt es etwas, das ich verwenden könnte, das der Funktion NaN
ähnlich ist, aber für Zeichenfolgen?
Von der doc Eingabeaufforderung
%Vor% Der Rückgabewert ist eine Zeichenfolge oder null . In Ihrem Beispiel ist y
unabhängig von der Benutzereingabe immer eine Zeichenfolge oder Objekt .
In Ihrem Fall, wenn Sie filtern möchten, wenn Benutzer Nicht-Buchstaben eingeben, können Sie einen regulären Ausdruck wie:
verwenden
Das von prompt
zurückgegebene Ergebnis ist immer eine Zeichenkette (oder möglicherweise der Wert null
). Das gibt die Methode zurück. Es ist wichtig daran zu denken, dass "123"
tatsächlich eine Zeichenkette ist, obwohl es auch die Zeichenkette einer Zahl ist.
In deinem Fall versuchst du nicht wirklich herauszufinden, ob es eine Zeichenfolge ist; Sie versuchen sicherzustellen, dass es sich nicht um eine Nummer handelt. Allgemeiner gesagt, deine Frage lautet "eine Buchstabenkette".
Das bedeutet nur, dass Sie sicherstellen müssen, dass die resultierende Zeichenfolge nur Buchstaben und keine Ziffern oder Symbole enthält. Sie können dies mit einem einfachen regulären Ausdruck tun:
Einige Punkte, die hier zu beachten sind. Dies erlaubt nicht die leere Zeichenfolge ""
; Wenn Sie dies zulassen müssen, ändern Sie +
(ein oder mehrere Quantifizierer) in *
(null oder mehr) in der Regex. Sie müssen auch explizit nach null
suchen (indem Sie x != null
ausführen), anstatt !x
, da ""
falsch ist.
Dieser Regex lässt auch keine Leerzeichen zu. Sie können den Space Matcher in die Zeichenklasse aufnehmen, um dies zu ermöglichen.
Tags und Links javascript