Überprüfen Sie, ob Sring eine Zahl in JavaScript ist

Hiten Kanwar 12 Oktober 2023
  1. Verwenden Sie die Funktion isNaN(), um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript
  2. Verwenden Sie den Operator +, um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript
  3. Verwenden Sie die Funktion parseInt(), um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript
  4. Verwenden Sie die Funktion Number(), um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript
  5. Verwenden Sie reguläre Ausdrücke, um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript
Überprüfen Sie, ob Sring eine Zahl in JavaScript ist

Die Zahl in der Programmiersprache ist der Datentyp, der Ganzzahlen, Fließkommazahlen usw. bezeichnet. Strings repräsentieren alle Zeichen und nicht nur numerische Werte. Strings können numerische Werte enthalten.

Wir werden in diesem Artikel überprüfen, ob ein gegebener String eine Zahl ist oder nicht.

Verwenden Sie die Funktion isNaN(), um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript

Die Funktion isNaN() steht für “isNaN”. Es handelt sich um eine integrierte JavaScript-Funktion, die verwendet wird, um festzustellen, ob ein bestimmter Wert keine numerischen Werte enthält, einschließlich echter Zahlen und numerischer Zeichenfolgen.

Die Funktion isNaN() gibt true zurück, wenn der Wert keine Zahl ist, und false, wenn er eine Zahl ist oder in eine gültige Zahl umgewandelt werden kann.

Hier ist die grundlegende Syntax der Funktion isNaN():

isNaN(value)
  • value: Der Wert, den Sie überprüfen möchten, ob er eine Zahl ist. Dies kann eine Variable, eine Konstante oder ein Ausdruck sein.

Beispiel:

console.log(isNaN('195'))
console.log(isNaN('boo'))
console.log(isNaN('100px'))

Ausgabe:

false 
true
true

Wenn wir eine Funktion erstellen möchten, die für einen gültigen Wert true zurückgibt, können wir das immer tun, indem wir eine Funktion erstellen, die das Ergebnis der Funktion isNaN() negiert.

function isNum(val) {
  return !isNaN(val)
}
console.log(isNum('aaa'));
console.log(isNum('13579'));
console.log(isNum('-13'));

Ausgabe:

false
true
true

Nun wird diese Funktion mit dem Namen isNum() für einen gültigen numerischen Wert den Wert true zurückgeben.

Umgang mit numerischen Strings mit Dezimalstellen

Die Funktion isNaN() ist vielseitig einsetzbar und kann auch numerische Zeichenfolgen mit Dezimalstellen verarbeiten. Zum Beispiel:

const str = '3.14';  // Die Zeichenfolge, die wir überprüfen möchten
const isNumeric = isNaN(str);

if (isNumeric) {
  console.log(`${str} ist KEINE Zahl.`);
} else {
  console.log(`${str} ist eine Zahl.`);
}

Die Ausgabe wird '3.14' korrekt als eine Zahl identifizieren:

3.14 is a number.

Verwenden Sie den Operator +, um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript

Der Operator + in JavaScript dient einem doppelten Zweck: Er kann für arithmetische Addition verwendet werden und als unärer Operator für Typzwang.

Wenn er auf Strings angewendet wird, versucht der Operator +, sie in numerische Werte umzuwandeln. Wenn der String erfolgreich in eine Zahl umgewandelt werden kann, ist das Ergebnis ein gültiger numerischer Wert. Andernfalls wird es zu NaN (“Not-a-Number”).

Zum Beispiel:

console.log(+'195')
console.log(+'boo')

Ausgabe:

195
NaN

Verwenden Sie die Funktion parseInt(), um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript

Die Methode parseInt() in JavaScript wird verwendet, um eine Zeichenfolge zu analysieren und in eine Ganzzahl (eine ganze Zahl) umzuwandeln. Sie liest die Zeichenfolge von links nach rechts, bis sie auf ein Zeichen stößt, das kein gültiger Bestandteil einer Ganzzahl ist, und hört dann auf, zu analysieren.

Hier ist die grundlegende Syntax für die Verwendung von parseInt():

parseInt(string[, radix]);
  • string: Die zu analysierende Zeichenfolge, die in eine Ganzzahl umgewandelt werden soll.
  • radix (optional): Eine Ganzzahl zwischen 2 und 36, die die Basis des Zahlensystems repräsentiert, das in der Zeichenfolge verwendet wird. Dieser Parameter ist optional und wenn er weggelassen wird, nimmt JavaScript die Basis 10 (Dezimal) an.

Die Funktion gibt NaN zurück, wenn sie keine Zahlen aus der Zeichenfolge extrahieren kann.

Zum Beispiel:

console.log(parseInt('195'))
console.log(parseInt('boo'))

Ausgabe:

195
NaN

Umgang mit numerischen Strings mit Basis

Die Methode parseInt() ermöglicht es Ihnen auch, die Basis (Radix) des Zahlensystems anzugeben, das in der Zeichenfolge verwendet wird. Sie können zum Beispiel binäre (Basis 2), oktale (Basis 8) oder hexadezimale (Basis 16) Zahlen analysieren.

Hier ist ein Beispiel für das Analysieren einer hexadezimalen Zeichenfolge:

const hexString = '1A';                    // Hexadezimale Zeichenfolge
const intValue = parseInt(hexString, 16);  // Basis 16 angeben

if (isNaN(intValue)) {
  console.log(`${hexString} ist KEINE Zahl.`);
} else {
  console.log(`${hexString} ist eine Zahl.`);
}

In diesem Fall wird die Ausgabe '1A' korrekt als eine hexadezimale Zahl identifizieren:

1A is a number.

Verwenden Sie die Funktion Number(), um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript

Die Funktion Number() wandelt das Argument in eine Zahl um, die den Wert des Objekts darstellt. Wenn es nicht möglich ist, den Wert in eine Zahl umzuwandeln, gibt sie NaN zurück.

Wir können sie auch mit Strings verwenden, um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht.

Zum Beispiel:

console.log(Number('195'))
console.log(Number('boo'))

Ausgabe:

195
NaN

Verwenden Sie reguläre Ausdrücke, um zu überprüfen, ob ein gegebener String eine Zahl ist oder nicht in JavaScript

Ein regulärer Ausdruck, oft als Regex bezeichnet, ist ein Muster, das eine Reihe von Zeichenketten angibt. Er kann für die Mustererkennung innerhalb von Zeichenketten verwendet werden und ist daher ein vielseitiges Werkzeug für Aufgaben wie die Zeichenkettenvalidierung.

In JavaScript können Sie reguläre Ausdrücke entweder mit dem RegExp-Konstruktor oder mit der Regex-Literalnotation zwischen Schrägstrichen, z.B. /Muster/, erstellen.

Wir können solche Muster verwenden, um zu überprüfen, ob eine Zeichenkette eine Nummer enthält oder nicht.

Zunächst müssen wir ein reguläres Ausdrucksmuster definieren, das numerische Werte abgleicht. Wir können ein einfaches Muster erstellen, das positive und negative Ganzzahlen sowie Fließkommazahlen abgleicht:

const numberPattern = /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;

Hier ist, was dieses Muster tut:

  • ^: Besteht auf dem Anfang der Zeichenkette.
  • [-+]?: Passt auf ein optional positives oder negatives Vorzeichen.
  • [0-9]*: Passt auf null oder mehr Ziffern vor dem Dezimalpunkt.
  • \.?: Passt auf einen optionalen Dezimalpunkt.
  • [0-9]+: Passt auf eine oder mehr Ziffern nach dem Dezimalpunkt.
  • ([eE][-+]?[0-9]+)?: Passt auf einen optionalen Exponententeil, wie zum Beispiel e-3 oder E+4.

Jetzt wenden Sie die test()-Methode des regulären Ausdrucks auf die Zeichenkette an. Die test()-Methode gibt true zurück, wenn die Zeichenkette zum Muster passt, andernfalls false:

const isNumber = numberPattern.test(str);

Beispiel:

function isNumeric(val) {
  return /^-?\d+$/.test(val);
}

console.log(isNumeric('aaa'));
console.log(isNumeric('13579'));
console.log(isNumeric('-13'));

Ausgabe:

false
true
true

Verwandter Artikel - JavaScript String