php - 如何检查 $_POST ['input'] 是否仅包含允许的字符
问题描述
我如何检查输入是否仅包含一个或多个以下允许的字符之一:
a-z
, A-Z
,0-9
所以我的支票必须是这样的:
if ($_POST ['input'] != 'a-z, A-Z, 0-9') {
exit;
}
else {
//do stuff
解决方案
您可以使用它preg_match
来测试您的输入数据。如果您想要每个字符集中的至少一个,您可以使用
if (preg_match('/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])/', $_POST['input'])) {
// do stuff
}
(这个正则表达式使用 3 个正向前瞻来确保三组中的每一个都有一个字符)
如果您只想要整个集合中的一个或多个,您可以使用
if (preg_match('/[a-zA-Z0-9]/', $_POST['input']))
如果您希望所有字符都在该集合中,您可以使用
if (preg_match('/^[a-zA-Z0-9]+$/', $_POST['input']))
请注意,只要您想要同时设置A-Z
和a-z
,您可以通过使用正则表达式上的修饰符来简化后两个i
正则表达式(不区分大小写):
if (preg_match('/[A-Z0-9]/i', $_POST['input']))
if (preg_match('/^[A-Z0-9]+$/i', $_POST['input']))
推荐阅读
- javascript - 将 React 组件推送到 javascript 数组不存储实际返回值
- python - 在.exe中编译一个使用InstaPy的脚本
- kubernetes - 在 kubernetes (gke) 中删除失败的作业
- flutter - 找不到带有 Esri 或 OpenStreepMap 传单标签的 URL 卫星地图
- python - 读取文件中的多行字符串
- android - 我的 Android 应用程序中出现 java.lang.RuntimeException 错误
- javascript - Vue:如何根据所选选项更改路线,并在
- json - package.json 知道是否有任何未使用的依赖项
- parallel-processing - 了解如何在 Slurm 上提交并行计算作业
- r - 增加三元图中的箭头粗细 [ggtern]