首页 > 解决方案 > 正则表达式验证模式只允许一个字符

问题描述

我正在尝试制作验证用户名、电子邮件和密码的功能,但我的正则表达式不起作用。我的用户名正则表达式是^[a-zA-Z0-9 _-]$,当我通过任何应该工作的东西时,它总是返回 false。

据我了解,^开头$和结尾的 and 意味着它确保整个字符串与这个正则表达式匹配,a-zandA-Z允许所有字母,0-9允许所有数字和最后三个字符(空格、下划线和破折号)允许各自的字符。

为什么我的正则表达式没有正确评估?

标签: phpregexquantifiers

解决方案


您没有指定字符数。让我们试试这个:

^[A-z0-9]*$

Where[A-z0-9]声明您可以使用任何字母数字字符并且区分大小写。

指定有*多少个字符,在这种情况下是无限的。如果您想将用户名长度最大为 10 个字符,则可以将其更改为:

^[A-z0-9]{10}$

其中{10}指定最多 10 个字符。

更新

还允许使用下划线、连字符和空格(字符串中的任何位置) - 使用以下命令:

^[A-z0-9 _-]{10}$

推荐阅读