Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查$#u POST[';input';]是否只包含允许的字符_Php_Validation_Input - Fatal编程技术网

Php 如何检查$#u POST[';input';]是否只包含允许的字符

Php 如何检查$#u POST[';input';]是否只包含允许的字符,php,validation,input,Php,Validation,Input,如何检查输入是否仅包含一个或多个允许的字符: a-z,a-z,0-9 所以我的支票必须是这样的: if ($_POST ['input'] != 'a-z, A-Z, 0-9') { exit; } else { //do stuff 您只需使用即可获得所需的结果,如: <?php $string = 'Mike123'; // string if(preg_match("/^[a-zA-Z0-9]+$/", $string)) { echo 'do nothing'; } else

如何检查输入是否仅包含一个或多个允许的字符:
a-z
a-z
0-9

所以我的支票必须是这样的:

if ($_POST ['input'] != 'a-z, A-Z, 0-9') {
exit;
}
else {
//do stuff
您只需使用即可获得所需的结果,如:

<?php
$string = 'Mike123'; // string
if(preg_match("/^[a-zA-Z0-9]+$/", $string)) {
  echo 'do nothing';
}
else{
  echo 'do something';
}
?>
您可以使用来测试输入数据。如果您希望这些字符集中至少有一个,可以使用

if (preg_match('/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])/', $_POST['input'])) {
    // do stuff
}
if (preg_match('/[a-zA-Z0-9]/', $_POST['input']))
if (preg_match('/^[a-zA-Z0-9]+$/', $_POST['input']))
(此正则表达式使用3个正向lookahead以确保三个集合中的每个集合都有一个字符)

如果您只需要整个集合中的一个或多个,可以使用

if (preg_match('/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])/', $_POST['input'])) {
    // do stuff
}
if (preg_match('/[a-zA-Z0-9]/', $_POST['input']))
if (preg_match('/^[a-zA-Z0-9]+$/', $_POST['input']))
如果希望所有字符都在该集中,可以使用

if (preg_match('/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])/', $_POST['input'])) {
    // do stuff
}
if (preg_match('/[a-zA-Z0-9]/', $_POST['input']))
if (preg_match('/^[a-zA-Z0-9]+$/', $_POST['input']))
我对每个正则表达式都做了一些演示

请注意,只要同时需要
A-Z
A-Z
集合,就可以通过在正则表达式上使用
i
修饰符简化后两个正则表达式(不区分大小写):


不需要
==1
。使用
i
模式修改器,可以缩短字符类。您的答案不允许使用任何其他字符。@mickmackusa:是的,您是对的,请尝试分享更具体的示例。这个答案通过
ctype_alnum()
@mickmackusa:是的,我正在探索这个问题,并将更新我的答案,不是为了引起OP的注意,只是为了将来的访问者。@Jack
ctype_alnum()
是解决澄清问题的最佳工具。这是您和未来研究人员应该实施的解决方案。您可能需要重新考虑绿色记号的位置。@Jack请提供一组输入字符串以及您对每个字符串的预期结果。这通过上下文澄清了您的问题。正则表达式呢?@mickmackusa当然适用于第三种选择(其中所有字符都必须是字母数字)。原来的问题只要求至少一个,这样就不适合了。@nick:同意。。。