所以我继续我的php之旅。现在创建注册表并验证用户请求的用户名。这是我到目前为止所拥有的:
if (preg_match("([a-z 0-9](?=.{3})(?!.{10}))", $user_Name))
我使用“RegExr”来创建这个匹配,但它似乎不起作用。添加了一个大写字母,它仍然说它是有效的
本来打算:
- 从 0 到 9 的数字
- 没有大写字母
- 完全没有特殊符号
- 最少 6 个字符
- 最多 10 个字符
所以我继续我的php之旅。现在创建注册表并验证用户请求的用户名。这是我到目前为止所拥有的:
if (preg_match("([a-z 0-9](?=.{3})(?!.{10}))", $user_Name))
我使用“RegExr”来创建这个匹配,但它似乎不起作用。添加了一个大写字母,它仍然说它是有效的
本来打算:
根据您的规则,这应该有效:
if (preg_match('/^[a-z0-9]{6,10}$/', $user_name))
经过大约 3 小时的研究和故障排除后,我找到了正确的解决方案。事实证明,顺序非常重要:
(?=.{5}) <=== 字符串必须为 5 或更多
(?!.{11}) <=== 字符串不能超过 10 个字符
^[az 0 -9]+$ <=== 匹配任何仅包含 0 -9 中常见字母和数字的字符串
if (!preg_match('/(?=.{5})(?!.{11})^[a-z 0 -9]+$/', $user_Name)) {
echo 'username is not valid</br>';
echo $user_Name;
}
else {
echo 'username is valid</br>';
echo $user_Name;
}