我想创建一个表单验证,我想确保用户不会在文本框中输入任何危险的代码,所以我想用preg_match
它来做.我不喜欢用户输入的是(某些东西而不是来自az的单词,AZ中的单词和数字).现在我该怎么用preg_match
?
这个正则表达式只允许字母和数字.
/^[A-Z\d]+$/i
用于preg_match
if(preg_match('/^[A-Z\d]+$/i', $string)) { echo 'Good'; } else { echo 'Bad'; }
Regex101演示:https://regex101.com/r/wH4uQ3/1
在^
和$
需要整个字符串匹配(他们是锚).这[]
是一个字符类,意味着允许任何内部字符.这+
意味着前面的一个或多个字符/组(这称为量词).这A-Z
是字符类理解为字母的范围a-z
.\d
是一个数字.该/
s为分隔符,告诉在正则表达式的开始和结束.这i
是一个修饰符,使正则表达式不区分大小写(可以删除它,并a-z
允许添加小写字母也是如此).
PHP演示:https://eval.in/486282
注意PHP演示失败,因为不允许使用空格.允许空格添加\h
或\s
在字符类中(s
包含\h
所以不需要两者; \h
用于水平空格.).