wie überprüft man, ob die PHP-Variable Nicht-Nummern enthält?

8

Ich möchte nur die Methode kennen, um eine PHP-Variable für beliebige Nicht-Nummern zu überprüfen und ob sie auch Leerzeichen zwischen Zeichen erkennt. Ich muss sicherstellen, dass nichts Ungewöhnliches in meine Formularfelder gelangt. Vielen Dank im Voraus.

    
user701510 09.06.2011, 08:55
quelle

9 Antworten

10

Wenn Sie meinen, dass ein Wert nur Zahlen enthalten soll, verwenden Sie ctype_digit() .

    
Marty 09.06.2011, 08:58
quelle
13

Sie können ctype_digit

verwenden

zB:

%Vor%     
nickf 09.06.2011 08:57
quelle
11

Sie können is_numeric() verwenden:

%Vor%

Dadurch wird überprüft, ob der Wert numerisch ist. Daher kann er etwas anderes als Ziffern enthalten:

%Vor%

Dies stellt jedoch sicher, dass der Wert eine gültige Zahl ist.

    
Matthieu Napoli 09.06.2011 08:59
quelle
7

Dies gibt true zurück, wenn in der Zeichenkette Nicht-Nummern vorhanden sind. Es erkennt Buchstaben, Leerzeichen, Tabulatoren, neue Zeilen, was auch immer keine Zahlen sind.

%Vor%     
SteeveDroz 09.06.2011 08:58
quelle
2

Dies überprüft, ob der Eingabewert numerisch ist oder nicht. Hoffe das hilft

%Vor%     
Amit Mhaske 31.10.2015 09:17
quelle
1
%Vor%     
Luca C. 20.07.2017 09:58
quelle
1

Wirf und vergleiche:

%Vor%     
symcbean 09.06.2011 09:36
quelle
0

PHP hat die Funktion is_numeric () , die genau das ist, wonach Sie suchen.

    
Ed Brown 09.06.2011 09:00
quelle
0

Angenommen, Sie möchten nur (und nur) gültige Ganzzahlen, und Sie möchten nicht, dass Benutzer mit Ihren Daten und Ihrer Datenbank mit hexadecimal oder binary oder einer anderen Form von Zahlen in Konflikt geraten, dann können Sie immer diese Methode verwenden:

%Vor%

Der Trick ist einfach. Er wandelt die Variable vom Typ string in Integer-Typ um und wandelt sie dann in string zurück. Super schnell, super einfach.

Um zu testen, habe ich einen Test vorbereitet:

%Vor%

Der einzige Platz, an dem diese Methode zu kurz kommt, sind negative Zahlen. Sie müssen das also überprüfen (verwenden Sie ((string) (int) $stringVariable) === $stringVariable && $stringVariable[0] !== "-" ).

Nun dachte ich, dass die Methode preg_match die beste ist. Aber in jedem Projekt, das sich mit Benutzern beschäftigt, ist Geschwindigkeit ein wichtiger Faktor. Also bereitete ich einen Benchmark-Test vor, der 500.000 Mal über dem Test lief und die Ergebnisse waren erstaunlich:

Meine eigene erfundene Methode hat nur genommen:
6.4700090885162
Sekunden im Vergleich zu preg_match , das dauerte:
77.020107984543 Sekunden, um diesen Test zu beenden!

    
TechJS 01.12.2016 00:21
quelle

Tags und Links