【问题标题】:PHP validate input alphanumeric plus a few symbolsPHP验证输入字母数字加上几个符号
【发布时间】:2010-02-20 19:08:22
【问题描述】:

需要一种方法来验证输入字段(在 PHP 中),以便它只能包含以下内容:

  • 任何字母
  • 任何数字
  • 任何这些符号:-(破折号)_(下划线)@(at)。 (点)或空格

字段可以以其中任何一个开头或结尾(但不是空格,但我可以在传递给验证函数之前对其进行修剪),并且不包含、一个或任何数字(因此只需检查以确保输入是上述之一)。

我希望能够做这样的事情:

funcion is_valid ( $in_form_input ) {
  // returns true or false
}

if ( is_valid($_POST['field1']) ) {
  echo "valid";
} else {
  echo "not valid";
}

【问题讨论】:

    标签: php validation


    【解决方案1】:
    return !preg_match('/[^-_@. 0-9A-Za-z]/', $in_form_input);
    

    【讨论】:

    【解决方案2】:

    使用preg_match():

    if (preg_match('!^[\w @.-]*$!', $input)) {
      // its valid
    }
    

    注意:\w[a-zA-Z0-9_] 的同义词。

    【讨论】:

      【解决方案3】:

      最好的方法是这样使用:-

      $str = "";
      function validate_username($str) 
      {
          $allowed = array(".", "-", "_", "@", " "); // you can add here more value, you want to allow.
          if(ctype_alnum(str_replace($allowed, '', $str ))) {
              return $str;
          } else {
              $str = "Invalid Username";
              return $str;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        • 1970-01-01
        • 2017-02-24
        • 1970-01-01
        • 2020-03-26
        • 2020-09-05
        相关资源
        最近更新 更多