【问题标题】:regex not working for php form validation [duplicate]正则表达式不适用于 php 表单验证 [重复]
【发布时间】:2019-04-29 15:27:18
【问题描述】:

我网站上的用户名只能包含 A-Z、a-z、0-9。没有空格或特殊字符。

我的注册表单中有以下 php 代码,但是当我输入仅包含字母的用户名时,它会输出错误,有什么帮助吗?:

if (!preg_match('/[^a-zA-Z0-9]+/gm', $_POST["userName"])) {
    $output = json_encode(
       array(
         'type' => 'error',
         'text' => 'Your username must not contain any spaces or special characters.'
          ));
    die($output);
}

【问题讨论】:

标签: php regex


【解决方案1】:

你的语法错误,试试这些

<?php   
 if (!preg_match('/^[a-zA-Z0-9]+$/', "name")) {
         echo "incorrect";
    }else{
      echo "correct";
    }
?>

【讨论】:

  • 这是什么修复? "name" 将始终匹配,这与 OP 正在做的相反
  • !preg_match('/^[a-zA-Z0-9]+$/', "name") 语法错误
  • @user3783243 修复了我的语法,列表中有 ^,$ 是字符串的结尾。
  • @AshleyNunn 这是一个错字,不是无效的语法。它正在创建一个否定字符类,只需从 preg_matchg 修饰符中删除 ! 就可以了。
猜你喜欢
  • 1970-01-01
  • 2018-11-13
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
相关资源
最近更新 更多