0

所以我继续我的php之旅。现在创建注册表并验证用户请求的用户名。这是我到目前为止所拥有的:

if (preg_match("([a-z 0-9](?=.{3})(?!.{10}))", $user_Name))

我使用“RegExr”来创建这个匹配,但它似乎不起作用。添加了一个大写字母,它仍然说它是有效的

本来打算:

  • 从 0 到 9 的数字
  • 没有大写字母
  • 完全没有特殊符号
  • 最少 6 个字符
  • 最多 10 个字符
4

2 回答 2

9

根据您的规则,这应该有效:

if (preg_match('/^[a-z0-9]{6,10}$/', $user_name))
于 2012-12-30T03:49:14.143 回答
-1

经过大约 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;
        }
于 2012-12-30T11:11:30.780 回答