好的,我希望用户能够输入所有A-Z字母和0-9数字,但是我不希望他们输入“特殊字符”。
代码:
if (preg_match("/^[a-zA-Z0-9]$/", $user_name)) {
#Stuff
}
它如何检查所有给定的字符,然后检查是否匹配?我尝试过 preg_match_all()
,但我并不完全理解。
例如,如果用户输入了“FaiL65Mal”,我希望程序能够接受它并继续执行。但如果他们输入“Fail{]^7(,”,我希望程序会出现错误提示。
好的,我希望用户能够输入所有A-Z字母和0-9数字,但是我不希望他们输入“特殊字符”。
代码:
if (preg_match("/^[a-zA-Z0-9]$/", $user_name)) {
#Stuff
}
它如何检查所有给定的字符,然后检查是否匹配?我尝试过 preg_match_all()
,但我并不完全理解。
例如,如果用户输入了“FaiL65Mal”,我希望程序能够接受它并继续执行。但如果他们输入“Fail{]^7(,”,我希望程序会出现错误提示。
*
:/^[a-zA-Z0-9]*$/
一个或多个字符+
:
/^[a-zA-Z0-9]+$/
你的正则表达式只能匹配一个字符,该字符必须是字母或数字。如果你想允许或拒绝空字符串,可以选择上述选项中的零个或多个、一个或多个。
你的正则表达式需要更改为
/^[a-zA-Z0-9]{1,8}$/
对于用户名长度在1到8个字符之间的情况,只需将8调整为适当的数字,也许还有1。
当前您的表达式匹配一个字符
preg_match()
和其他preg_*()
函数并不可靠,因为它们在失败时返回0
或false
,所以简单的if语句无法抛出错误。if (pattern(('^[a-zA-Z0-9]{1,8}$')->matches($input))
{
// Matches! :)
}