我想用正则表达式检查登录。
- 登录名必须至少包含 3-16 个字符
({3,16})
- 登录名只能包含字母数字,
-
并且_
([a-zA-Z0-9_-])
- 登录不能包含
__, --, -_, _-
((?!--|__|-_|_-))
- 登录不能包含
-
或_
结尾。((?!-|_))
如何将所有表达式组合成一个?
编辑:
5.登录不能以-
或开头_
我想用正则表达式检查登录。
({3,16})
-
并且_
([a-zA-Z0-9_-])
__, --, -_, _-
((?!--|__|-_|_-))
-
或_
结尾。((?!-|_))
如何将所有表达式组合成一个?
编辑:
5.登录不能以-
或开头_
^(?!_|-)([a-zA-Z0-9]|[\-_](?!_|-|$)){3,16}$
火柴
- 字符串的开头
- 检查第一个字符不是_
或-
- 一个标记,它是(一个字母数字)或(一个连字符/下划线,后面没有连字符/下划线/行尾)
-上述令牌,3到16次
- 字符串的结尾
您可以使用肯定断言:
登录必须至少包含 3-16 个字符 ({3,16})
(?=.{3,16}$)
登录名只能包含字母数字、- 和 _ ([a-zA-Z0-9_-])
(?=[a-zA-Z0-9_-]*$)
登录名不能包含, --, -_, - ((?!--| |- |_-))
(?!.*(?:__|--|-_|_-))
登录不能包含也不能以 - 或 _ 开头
(?![_-]|.*[_−]$)
结果:
^(?![_-]|.*(?:__|--|-_|_-)|.*[_-]$)[a-zA-Z0-9_-]{3,16}$