【问题标题】:How to use preg_match in php? [closed]如何在 php 中使用 preg_match? [关闭]
【发布时间】:2015-12-16 16:54:59
【问题描述】:

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

【问题讨论】:

  • 如果你只是想熟悉正则表达式,我强烈推荐这个页面来玩:regex101.com
  • 你做过研究吗?懒惰的问题!

标签: php html forms validation preg-match


【解决方案1】:

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

/^[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

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

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

注意 PHP 演示失败是因为不允许使用空格。要允许空格,请在字符类中添加\h\ss 包括\h,因此不需要两者;\h 用于水平空格。)。

【讨论】:

    【解决方案2】:

    这是一个简单的例子:

    您可以查看更多信息: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"; 
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多