Zum Hauptinhalt springen

Überprüfen, ob die Zeichenfolge nur Zahlen in PHP enthält

Wenn Sie mit Daten in PHP arbeiten, müssen Sie manchmal überprüfen, ob eine Zeichenfolge nur aus Ziffern besteht. Dies kann beispielsweise zum Validieren von Telefonnummern, Produktcodes oder PIN-Codes nützlich sein. In PHP gibt es mehrere Möglichkeiten, diese Aufgabe zu lösen, und wir werden sie genauer betrachten.

Der erste Weg ist, die Funktion zu verwenden ctype_digit() . Es prüft, ob eine Zeichenfolge nur aus Ziffern besteht. Wenn die Zeichenfolge mindestens ein Zeichen enthält, das keine Ziffer ist, gibt die Funktion false zurück. Wenn die Zeichenfolge leer ist, gibt die Funktion auch false zurück. Beispiel für die Verwendung einer Funktion:

echo "Eine Zeichenfolge besteht nur aus Ziffern";

echo "Die Zeichenfolge enthält Zeichen, die keine Ziffern sind";

Die zweite Methode besteht darin, einen regulären Ausdruck mit einer Funktion zu verwenden preg_match(). Regulärer Ausdruck /^\d+$/ überprüft, ob die Zeichenfolge nur mit Ziffern beginnt und endet. Wenn diese Bedingung erfüllt ist, gibt die Funktion true zurück, andernfalls false. Anwendungsbeispiel:

echo "Eine Zeichenfolge besteht nur aus Ziffern";

echo "Die Zeichenfolge enthält Zeichen, die keine Ziffern sind";

echo "Eine Zeichenfolge besteht nur aus Ziffern";

echo "Die Zeichenfolge enthält Zeichen, die keine Ziffern sind";

Wählen Sie die Methode aus, die für Ihre Aufgabe am besten geeignet ist, und verwenden Sie sie, um Strings auf nur Zahlen in PHP zu überprüfen.

Methoden zum Überprüfen einer Zeichenfolge auf Zahlen in PHP

In PHP gibt es mehrere Methoden, mit denen überprüft werden kann, ob eine Zeichenfolge nur Zahlen enthält:

1. Funktion ctype_digit()

Die Funktion ctype_digit() überprüft jedes Zeichen einer Zeichenfolge und gibt true zurück, wenn alle Zeichen Ziffern sind. Es funktioniert jedoch nicht, wenn andere Zeichen wie Leerzeichen oder Satzzeichen in der Zeichenfolge vorhanden sind.

 else ?>

2. Regulärer Ausdruck

Eine andere Möglichkeit, eine Zeichenfolge auf nur Zahlen zu überprüfen, besteht darin, einen regulären Ausdruck zu verwenden. Der reguläre Ausdruck /^\d+$/ überprüft, ob die Zeichenfolge nur mit Ziffern beginnt und endet. Wenn mindestens ein Zeichen der Zeichenfolge keine Ziffer ist, wird die Überprüfung nicht bestanden.

 else ?>

3. For-Schleife

Sie können die Zeichenfolge auch auf Zahlen überprüfen, indem Sie alle Zeichen der Zeichenfolge durchlaufen und überprüfen, ob sie zu einer Reihe von Ziffern gehören. Wenn mindestens ein Zeichen keine Ziffer ist, wird die Prüfung nicht bestanden.

>if ($isNumber) else ?>

Wählen Sie eine dieser Methoden aus, die für Ihre Aufgabe am besten geeignet ist, und verwenden Sie sie, um die Zeichenfolge auf nur Zahlen in PHP zu überprüfen.

Zeichenweise mit einer Schleife testen

Beispielcode:

>return true;>// Пример использования$string1 = "123456";$string2 = "abc123";$string3 = "120a3";if (checkDigits($string1)) else if (checkDigits($string2)) else if (checkDigits($string3)) else ?>

Wenn dieser Code ausgeführt wird, wird das folgende Ergebnis auf dem Bildschirm angezeigt:

Строка '123456' состоит только из цифр.Строка 'abc123' содержит другие символы, кроме цифр.Строка '120a3' содержит другие символы, кроме цифр.

Auf diese Weise können wir die Zeichenfolge nur auf Zahlen überprüfen, indem wir sie zeichenweise mit einer Schleife durchlaufen.

Verwenden von regulären Ausdrücken

Um zu überprüfen, dass die Zeichenfolge nur Zahlen enthält, können wir das folgende Muster für reguläre Ausdrücke verwenden: /^[0-9]+$/. Diese Vorlage besteht aus mehreren Teilen:

  • ^ - gibt an, dass die Übereinstimmung am Anfang der Zeile beginnen muss.
  • [0-9] - gibt den Bereich der Ziffern von 0 bis 9 an.
  • + - gibt an, dass das vorherige Zeichen (eine Ziffer) ein oder mehrere Male wiederholt werden kann.
  • $ - gibt an, dass die Übereinstimmung am Ende der Zeile enden muss.

Um eine Zeichenfolge auf Übereinstimmung mit diesem regulären Ausdruck zu überprüfen, können wir die Funktion verwenden preg_match(). Es nimmt zwei Parameter an: einen regulären Ausdruck und eine zu überprüfende Zeichenfolge. Die Funktion gibt 1 zurück, wenn die Zeichenfolge mit einem regulären Ausdruck übereinstimmt, andernfalls 0.

Hier ist ein Beispielcode, der zeigt, wie reguläre Ausdrücke verwendet werden, um zu überprüfen, ob eine Zeichenfolge nur Zahlen enthält:

 else ?>

Wenn dieser Code ausgeführt wird, wird die Meldung "Die Zeichenfolge enthält nur Zahlen." weil die Zeichenfolge "12345" mit dem regulären Ausdruck übereinstimmt /^[0-9]+$/.

Die Verwendung von regulären Ausdrücken ermöglicht es uns, Strings flexibler und genauer auf bestimmte Zeichen oder Muster zu überprüfen. Es ist ein nützliches Werkzeug, das in verschiedenen Situationen verwendet werden kann, einschließlich der Validierung von Benutzereingaben oder der Suche nach bestimmten Mustern im Text.

Validierung mit Standard-PHP-Funktionen

Die Funktion is_numeric() überprüft, ob es sich bei dem Wert um eine Variable oder eine Zeichenfolge handelt, die einen numerischen Wert enthält. Wenn der Wert nur Zahlen enthält, gibt die Funktion true zurück, andernfalls false .

Beispiel für die Verwendung der Funktion is_numeric() :

// Объявляем переменную со значением$number = "12345";// Проверяем, содержит ли переменная только цифрыif (is_numeric($number)) else

Die Funktion ctype_digit() prüft, ob eine Zeichenfolge nur aus numerischen Zeichen besteht. Wenn die Zeichenfolge nur Zahlen enthält, gibt die Funktion true zurück, andernfalls false .

Beispiel für die Verwendung der Funktion ctype_digit() :

// Объявляем переменную со значением$number = "12345";// Проверяем, состоит ли строка только из цифровых символовif (ctype_digit($number)) else

Beide Funktionen überprüfen nur Ganzzahlen, ohne Dezimalzahlen oder negative Werte zu beeinflussen. Wenn Sie eine Zeichenfolge überprüfen möchten, die Dezimalzeichen oder negative Werte enthält, müssen Sie möglicherweise andere Funktionen oder Methoden in PHP verwenden.

Verwenden einer benutzerdefinierten Funktion, um eine Zeichenfolge auf Zahlen zu überprüfen

Hier ist ein Beispiel für eine solche Funktion:

Die Funktion isDigitsOnly akzeptiert eine Zeichenfolge als Argument und gibt true zurück , wenn die Zeichenfolge nur Zahlen enthält, andernfalls false.

Um die Zeichenfolge zu überprüfen, verwenden wir den regulären Ausdruck /^[0-9]+$/ , das überprüft, dass sich nur Ziffern (0 bis 9) in der Zeichenfolge befinden und keine anderen Zeichen vorhanden sind.

Lassen Sie uns unsere Funktion testen:

 else if (isDigitsOnly($string2)) else ?>

Das Ergebnis der Ausführung dieses Codes lautet wie folgt:

Строка '12345' содержит только цифры.Строка '12a345' содержит неправильные символы.

Jetzt haben Sie eine Funktion, mit der Sie überprüfen können, ob eine Zeichenfolge nur Zahlen in PHP enthält. Sie können diese Funktion in Ihren Projekten verwenden, um Benutzereingaben zu überprüfen oder andere Aktionen auszuführen, um sicherzustellen, dass die eingegebenen Daten Ihren Anforderungen entsprechen.