-5

可能重复:
正则表达式将字符数限制为 10

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

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

我认为使用 preg_match 可以做到这一点,但我不知道如何。

4

5 回答 5

1

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

然后:

$myvar = $_POST['your_posted_variable_here'];

$result = preg_match('/^([\w\d]){40}$/i', $myvar);

如果您发布的数据仅包含字母和数字并且长度为 40 个字符,$result 将为 true,否则将为 false。

于 2012-11-08T20:11:49.577 回答
0

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

$yourInput=$_POST['yourInput'];
if(ctype_alnum($yourInput) && strlen($strlen)==40)
{
    //...
}
于 2012-11-08T20:12:11.970 回答
0

正好40 个字符:

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

至少40 个字符:

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

于 2012-11-08T20:05:58.727 回答
0

关于 preg_match 的信息

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

if (preg_match("@^[a-z0-9]{40}$@mis", $_POST['username'])) {
    print 'matched';
}
于 2012-11-08T20:06:10.747 回答
0

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

但将军的想法是对的……

这是另一种方式:

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

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

于 2012-11-08T20:08:24.503 回答