可能重复:
正则表达式将字符数限制为 10
我将 POST 检索到标准表单,我需要测试两件事:
- 该值必须为 40 个字符
- 该值只能包含字母和数字
我认为使用 preg_match 可以做到这一点,但我不知道如何。
可能重复:
正则表达式将字符数限制为 10
我将 POST 检索到标准表单,我需要测试两件事:
我认为使用 preg_match 可以做到这一点,但我不知道如何。
在全局 $_POST 中,您拥有关于 http 请求的所有发布数据。
然后:
$myvar = $_POST['your_posted_variable_here'];
$result = preg_match('/^([\w\d]){40}$/i', $myvar);
如果您发布的数据仅包含字母和数字并且长度为 40 个字符,$result 将为 true,否则将为 false。
PHP 提供了一个检查字母数字字符的函数ctype_alnum和strlen来检查字符串的长度,所以使用这两个函数你可以验证它
$yourInput=$_POST['yourInput'];
if(ctype_alnum($yourInput) && strlen($strlen)==40)
{
//...
}
正好40 个字符:
^[a-zA-Z0-9]{40}$
至少40 个字符:
^[a-zA-Z0-9]{40,}$
关于 preg_match 的信息
http://php.net/manual/en/function.preg-match.php
if (preg_match("@^[a-z0-9]{40}$@mis", $_POST['username'])) {
print 'matched';
}
您还可以先使用 strlen() 检查字符串的长度,然后如果它满足所需的长度,则继续检查字母数字。
但将军的想法是对的……
这是另一种方式:
preg_match("/^[0-9a-zA-Z_]{40,}$/", $_POST["something"])
这是字母数字,并检查至少 40 个字符,但会接受更多。逗号后面的缺失值意味着它可以是等于或大于 40 的任何值。