这是我的第一个问题.目前我正在开发一个PHP论坛脚本,我想让人们注册一个遵守我的规则的用户名.
规则很简单:
请放下一个功能来帮助我.我读了一些教程,但不太了解正则表达式.因此我被困住了.提前感谢您的回答.
20分钟后添加:
谢谢你的回答,我还有一件事要问,我可以解除愚蠢的用户名吗?EG aaa123,ab-cd,uuuu ......比怎么样?
拿你描述的部分:
- 第一个字必须是一个字母
开始 ^[A-Za-z]
- 他们也可以使用数字但不是第一个
[A-Za-z0-9]* 在中间
- 他们可以使用fullstop/underscore一次但不能在用户名末尾使用
(可选)使用下划线,后跟至少一个其他有效字符 ([._][A-Za-z]+)?
把它们放在一起就可以了:/^[A-Za-z][A-Za-z0-9]*([._][A-Za-z0-9]+)?$/.使用情况'/ I不敏感的标志让你放下"A-Z": /^[a-z][a-z0-9]*([._][a-z0-9]+)?$/i.
正则表达式等同于确定性有限自动机(DFA).研究它们有助于掌握正则表达式.特别是,州之间的过渡直接适用于您的三点.这种语言的(简化)状态图应该很容易理解:
![/^ [az]的状态图[az0-9]*([._] [az0-9]??](https://i.stack.imgur.com/0oiEN.png)
DFA:
我称之为"减少",因为有第五个不接受的状态和通向它的边缘未显示.基本上,如果遇到的字符不是列出的字符,则DFA会转换到第五个不接受状态并保持不变.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |