使用preg_match检查POST

时间:2012-11-08 20:00:02

标签: php forms preg-match

  

可能重复:
  Regular expression to limit number of characters to 10

我检索到标准表单的POST,我需要测试两件事:

  • 值必须为40个字符
  • 该值必须仅包含字母和数字

我认为用preg_match可以做到这一点,但我不知道怎么做。

5 个答案:

答案 0 :(得分:1)

在全局$ _POST中,您拥有http请求中的所有发布数据。

然后:

$myvar = $_POST['your_posted_variable_here'];

$result = preg_match('/^([\w\d]){40}$/i', $myvar);
如果您的发布数据仅包含字母和数字且长度为40个字符,则

$ result将为true,否则将为false。

答案 1 :(得分:0)

完全 40个字符:

^[a-zA-Z0-9]{40}$

至少 40个字符:

^[a-zA-Z0-9]{40,}$

答案 2 :(得分:0)

有关preg_match的信息

http://php.net/manual/en/function.preg-match.php

if (preg_match("@^[a-z0-9]{40}$@mis", $_POST['username'])) {
    print 'matched';
}

答案 3 :(得分:0)

您还可以先使用strlen()检查字符串的长度,然后如果它满足所需的长度,请继续检查字母数字。

但将军有正确的想法......

这是另一种方式:

preg_match("/^[0-9a-zA-Z_]{40,}$/", $_POST["something"])

这是字母数字,并检查至少40个字符,但会接受更多。逗号后面的缺失值表示它可以是等于或大于40的任何值。

答案 4 :(得分:0)

PHP提供了一个函数,用于检查字母数字字符ctype_alnumstrlen以检查字符串的长度,因此使用这两个函数可以验证它

$yourInput=$_POST['yourInput'];
if(ctype_alnum($yourInput) && strlen($strlen)==40)
{
    //...
}