Heim php教程 PHP源码 php用正则判断是否为数字的方法

php用正则判断是否为数字的方法

May 25, 2016 pm 05:04 PM
数字 正则

这篇文章主要介绍了php用正则判断是否为数字的方法,需要的朋友可以参考下

前两天朋友的一个网站上有人利用php注入提交flash游戏分数,后来找原因才发现是有一位参数没有做数字判断导致。

本来保存游戏分数是 game.php?ac=save&fgid=1这个形式来实现,在php网页里面fgid直接调用,没有做任何的过滤。很多人利用在fgid=1后面加一个字母(fgid=1a),来实现一些非法操作。

假如  gamlist table 里面有一个游戏  fgid为102
select gname from gamelist where fgid='102′;
select gname from gamelist where fgid='102a';
这样都可以成功的找到游戏名字gname,这就给很多人提供了可乘之机

建议大家对关键的参数必须做过滤。如数字正则过滤

代码如下:

if(preg_match("/^\d*$/",$fgid))    echo('是数字');
else   echo('不是数字');
Nach dem Login kopieren


或者用函数

代码如下:

if(is_numeric($fgid)) echo('是数字');
else echo('不是数字');
Nach dem Login kopieren

网上用来判断id是否为数字的方法

代码如下:

$cid = empty($cid)? 1 : intval(preg_replace("/[^-\d]+[^\d]/",'', $cid));
Nach dem Login kopieren

这两种方法的区别是  is_numeric小数也会认为是数字,而前面正则会把小数点当作字符。

附一些常用的正则运算:

验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0)  ^\d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&‘,;=?$\” 等字符:[^%&‘,;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:–正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$    正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数   ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数  ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数  ^(-?\d+)(\.\d+)?

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

iOS 17: So ändern Sie den Uhrstil des iPhone im Standby-Modus iOS 17: So ändern Sie den Uhrstil des iPhone im Standby-Modus Sep 10, 2023 pm 09:21 PM

Standby ist ein Sperrbildschirmmodus, der aktiviert wird, wenn das iPhone an das Ladegerät angeschlossen und horizontal (oder im Querformat) ausgerichtet ist. Es besteht aus drei verschiedenen Bildschirmen, von denen einer im Vollbildmodus angezeigt wird. Lesen Sie weiter, um zu erfahren, wie Sie den Stil Ihrer Uhr ändern können. Auf dem dritten Bildschirm von StandBy werden Uhrzeiten und Daten in verschiedenen Themen angezeigt, die Sie vertikal wischen können. Einige Themes zeigen auch zusätzliche Informationen an, wie z. B. Temperatur oder nächster Alarm. Wenn Sie eine beliebige Uhr gedrückt halten, können Sie zwischen verschiedenen Themen wechseln, darunter Digital, Analog, Welt, Solar und Floating. Float zeigt die Zeit in großen Blasenzahlen in anpassbaren Farben an, Solar verfügt über eine Standardschriftart mit einem Sonneneruptionsdesign in verschiedenen Farben und World zeigt die Welt durch Hervorhebung an

Generieren Sie Zufallszahlen und Zeichenfolgen in JavaScript Generieren Sie Zufallszahlen und Zeichenfolgen in JavaScript Sep 02, 2023 am 08:57 AM

Die Möglichkeit, Zufallszahlen oder alphanumerische Zeichenfolgen zu generieren, ist in vielen Situationen praktisch. Sie können damit an verschiedenen Orten im Spiel Feinde oder Nahrung hervorbringen. Sie können es auch verwenden, um Benutzern zufällige Passwörter vorzuschlagen oder Dateinamen zum Speichern von Dateien zu erstellen. Ich habe ein Tutorial darüber geschrieben, wie man in PHP zufällige alphanumerische Zeichenfolgen generiert. Ich habe am Anfang dieses Beitrags gesagt, dass nur wenige Ereignisse wirklich zufällig sind, und das Gleiche gilt für die Zufallszahlen- oder String-Generierung. In diesem Tutorial zeige ich Ihnen, wie Sie in JavaScript eine pseudozufällige alphanumerische Zeichenfolge generieren. Generieren von Zufallszahlen in JavaScript Beginnen wir mit der Generierung von Zufallszahlen. Die erste Methode, die mir in den Sinn kommt, ist Math.random(), die einen Float zurückgibt

C++-Programm zum Runden einer Zahl auf n Dezimalstellen C++-Programm zum Runden einer Zahl auf n Dezimalstellen Sep 12, 2023 pm 05:13 PM

Zahlen als Ausgabe darzustellen ist eine interessante und wichtige Aufgabe beim Schreiben eines Programms in einer beliebigen Sprache. Bei ganzzahligen Typen (Daten vom Typ kurz, lang oder mittel) ist es einfach, Zahlen als Ausgabe darzustellen. Bei Gleitkommazahlen (Float- oder Double-Typ) müssen wir sie manchmal auf eine bestimmte Anzahl von Dezimalstellen runden. Wenn wir beispielsweise 52,24568 mit drei Dezimalstellen darstellen möchten, ist eine gewisse Vorverarbeitung erforderlich. In diesem Artikel stellen wir verschiedene Techniken vor, um Gleitkommazahlen durch Runden auf eine bestimmte Anzahl von Dezimalstellen darzustellen. Unter den verschiedenen Ansätzen ist es wichtig, eine C-ähnliche Formatzeichenfolge zu verwenden, das Präzisionsargument zu verwenden und die Funktion „round()“ aus der Mathematikbibliothek zu verwenden. Schauen wir sie uns einzeln an. mit

Wie ordne ich mehrere Wörter oder Zeichenfolgen mithilfe des regulären Golang-Ausdrucks zu? Wie ordne ich mehrere Wörter oder Zeichenfolgen mithilfe des regulären Golang-Ausdrucks zu? May 31, 2024 am 10:32 AM

Reguläre Golang-Ausdrücke verwenden das Pipe-Zeichen |, um mehrere Wörter oder Zeichenfolgen abzugleichen, wobei jede Option als logischer ODER-Ausdruck getrennt wird. Zum Beispiel: Entspricht „fox“ oder „dog“: fox|dog entspricht „quick“, „brown“ oder „lazy“: (quick|brown|lazy) entspricht „Go“, „Python“ oder „Java“: Go| Python |Java sucht nach Wörtern oder 4-stelligen Postleitzahlen: ([a-zA

Verwenden Sie C++, um Code zu schreiben, um die N-te nichtquadratische Zahl zu finden Verwenden Sie C++, um Code zu schreiben, um die N-te nichtquadratische Zahl zu finden Aug 30, 2023 pm 10:41 PM

Wir alle kennen Zahlen, die nicht das Quadrat einer Zahl sind, wie zum Beispiel 2, 3, 5, 7, 8 usw. Es gibt N nichtquadratische Zahlen und es ist unmöglich, jede Zahl zu kennen. In diesem Artikel erklären wir alles über quadratlose oder nichtquadratische Zahlen und Möglichkeiten, die N-te nichtquadratische Zahl in C++ zu finden. N-te nichtquadratische Zahl Wenn eine Zahl das Quadrat einer ganzen Zahl ist, wird die Zahl als perfektes Quadrat bezeichnet. Einige Beispiele für perfekte Quadratzahlen sind -1isquadratvon14isquadratvon29isquadratvon316isquadratvon425isquadratvon5. Wenn eine Zahl nicht das Quadrat einer ganzen Zahl ist, wird die Zahl als nichtquadratisch bezeichnet. Die ersten 15 nichtquadratischen Zahlen sind beispielsweise -2,3,5,6,

Finden Sie mit C++ Zahlen, die durch keine Zahl in einem Bereich teilbar sind Finden Sie mit C++ Zahlen, die durch keine Zahl in einem Bereich teilbar sind Sep 13, 2023 pm 09:21 PM

In diesem Artikel werden wir das Problem diskutieren, Zahlen zwischen 1 und n (vorgegeben) zu finden, die nicht durch eine Zahl zwischen 2 und 10 teilbar sind. Lassen Sie uns dies anhand einiger Beispiele verstehen: Eingabe: Nummer = 14 Ausgabe: 3 Erläuterung: Es gibt drei Zahlen, 1, 11 und 13, die nicht teilbar sind. Eingabe: Nummer = 21 Ausgabe: 5 Erläuterung: Es gibt fünf Zahlen 1, 11, 13, 17 und 19, die nicht teilbar sind

Überprüfen Sie mit der Funktion is_numeric() in PHP, ob es sich um eine Zahl handelt Überprüfen Sie mit der Funktion is_numeric() in PHP, ob es sich um eine Zahl handelt Jun 27, 2023 pm 05:00 PM

In der Programmiersprache PHP ist die Funktion is_numeric() eine sehr häufig verwendete Funktion, mit der ermittelt wird, ob eine Variable oder ein Wert eine Zahl ist. Bei der tatsächlichen Programmierung ist es häufig erforderlich, den vom Benutzer eingegebenen Wert zu überprüfen, um festzustellen, ob es sich um einen numerischen Typ handelt. In diesem Fall kann die Funktion is_numeric() zur Bestimmung verwendet werden. 1. Einführung in die Funktion is_numeric() Die Funktion is_numeric() ist eine Funktion, die verwendet wird, um zu erkennen, ob eine Variable oder ein Wert eine Zahl ist. Gibt tru zurück, wenn die Variable oder der Wert eine Zahl ist

Zahlen in Java (mit 0-Präfix und Zeichenfolgen) Zahlen in Java (mit 0-Präfix und Zeichenfolgen) Aug 29, 2023 pm 01:45 PM

Zahlen in Java Es ist wichtig zu verstehen, dass die Zahlenklasse keine greifbare Klasse, sondern eine abstrakte Klasse ist. Darin befindet sich eine Reihe von Wrapper-Klassen, die seine Funktionalität definieren. Zu diesen Wrapper-Klassen gehören Integer, Byte, Double, Short, Float und Long. Möglicherweise stellen Sie fest, dass es sich dabei um dieselben grundlegenden Datentypen handelt, die wir zuvor besprochen haben, sie werden jedoch als separate Klassen mit Großbuchstaben dargestellt, um der Klassenbenennungskonvention zu entsprechen. Der Compiler konvertiert automatisch primitive Datentypen in Objekte und umgekehrt, je nach Bedarf für eine bestimmte Funktion oder einen bestimmten Programmumfang. Numerische Klassen sind Teil des java.lang-Pakets. Dieser Vorgang wird Autoboxing und Unboxing genannt. Indem wir die abstrakte Natur numerischer Klassen und ihrer entsprechenden Wrapper-Klassen verstehen, können wir dies tun

See all articles