php - 正则表达式验证模式只允许一个字符
问题描述
我正在尝试制作验证用户名、电子邮件和密码的功能,但我的正则表达式不起作用。我的用户名正则表达式是^[a-zA-Z0-9 _-]$
,当我通过任何应该工作的东西时,它总是返回 false。
据我了解,^
开头$
和结尾的 and 意味着它确保整个字符串与这个正则表达式匹配,a-z
andA-Z
允许所有字母,0-9
允许所有数字和最后三个字符(空格、下划线和破折号)允许各自的字符。
为什么我的正则表达式没有正确评估?
解决方案
您没有指定字符数。让我们试试这个:
^[A-z0-9]*$
Where[A-z0-9]
声明您可以使用任何字母数字字符并且区分大小写。
指定有*
多少个字符,在这种情况下是无限的。如果您想将用户名长度最大为 10 个字符,则可以将其更改为:
^[A-z0-9]{10}$
其中{10}
指定最多 10 个字符。
更新
还允许使用下划线、连字符和空格(字符串中的任何位置) - 使用以下命令:
^[A-z0-9 _-]{10}$
推荐阅读
- amazon-web-services - 在 lambda 环境变量中存储 Web 服务 URL
- xaml - 禁用标签上的剪辑
- python - 使用 SQLalchemy 从 Docker 容器连接到外部 MySQL 数据库
- c++ - std::reverse_iterator 是否适用于适应范围?
- java - Java.persistance.rollback.rollback 异常
- android - 为什么在 Java 错误中不推荐使用底部导航?
- spring-boot - 如何摆脱为id“null”映射的No PasswordEncoder
- apache-kafka - Debezium 流 数值解码
- string - 修剪带有任意数量下划线的字符串,直到保留一定数量的下划线
- reactjs - 对齐弹性容器的最后一行