我正在尝试创建一个正则表达式来根据这些条件验证用户名:
>仅包含字母数字字符,
下划线和点.
>下划线和点不能在最后或
用户名的开头(例如_username / username_ / .username / username.).
>下划线和点不能彼此相邻(例如user_.name).
> Underscore或dot不能连续多次使用(例如user _name / user..name).
>字符数必须介于8到20之间.
这就是我到目前为止所做的事情;听起来它强制执行所有标准规则但是第5条规则.我不知道如何添加第五条规则:
^[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
标签:htaccess,html,java,php,regex
来源: https://codeday.me/bug/20190923/1814788.html