我正在尝试创建一个正则表达式来根据这些条件验证用户名:
- 仅包含字母数字人物,下划线 and dot.
- 下划线和点不能位于end or
start用户名(例如
_username
/ username_
/ .username
/ username.
).
- 下划线和点不能是彼此相邻 (e.g
user_.name
).
- 下划线或点不能多次使用in a row (e.g
user__name
/ user..name
).
- 字符数必须在 8 到 20 之间。
这就是我到目前为止所做的;听起来它强制执行所有标准规则但第五条规则。我不知道如何添加第五条规则:
^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$
^(?=.{8,20}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$
└─────┬────┘└───┬──┘└─────┬─────┘└─────┬─────┘ └───┬───┘
│ │ │ │ no _ or . at the end
│ │ │ │
│ │ │ allowed characters
│ │ │
│ │ no __ or _. or ._ or .. inside
│ │
│ no _ or . at the beginning
│
username is 8-20 characters long
如果您的浏览器由于缺乏反向后向支持而引发错误,请使用以下替代模式:
^(?=[a-zA-Z0-9._]{8,20}$)(?!.*[_.]{2})[^_.].*[^_.]$
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)