如何在php中使用preg_match?

How to use preg_match in php?

我想创建一个表单验证,我想确保用户不会在文本框中输入任何危险代码,所以我想使用 preg_match 来实现。 我不喜欢用户输入的是(不是 a-z 中的单词,A-Z 中的单词和数字)。 现在如何在这里使用 preg_match

这是一个简单的例子:

您可以在以下位置查看更多信息:http://php.net/manual/en/function.preg-match.php

您也可以这样做:$email = htmlspecialchars($_POST['email']);

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "Invalid email format"; 
}

此正则表达式只允许字母和数字。

/^[A-Z\d]+$/i

用于preg_match

if(preg_match('/^[A-Z\d]+$/i', $string)) {
      echo 'Good';
} else {
     echo 'Bad';
}

Regex101 演示:https://regex101.com/r/wH4uQ3/1

^$ 要求整个字符串匹配(它们是锚点)。 [] 是一个字符 class,表示允许使用其中的任何字符。 + 表示前面的 character/group 中的一个或多个(这称为量词)。 A-Z 是字符 class 理解为字母 a-z 的范围。 \d 是一个数字。 /s 是分隔符,告诉正则表达式从哪里开始和结束。 i 是使正则表达式不区分大小写的修饰符(可以删除它并添加 a-z 因此也允许使用小写字母)。

PHP 演示:https://eval.in/486282

注意 PHP 演示失败,因为不允许使用白色 space。要允许白色 space 在字符 class 中添加 \h\ss 包括 \h,因此不需要两者;\h 用于水平 spaces.).