正则表达式实现账号口令长度应至少 12 位: 口今应包括数字、小写字母、大写字母、特殊符号 4 类中至少 3 类: 口今应与账号(用户名 ) 无相关性,口令不得包含账号的完整字符串、大小写变位或形似变换的字符串;口令设置应避免键盘排序密码。
时间: 2024-05-11 14:18:54 浏览: 267
以下是一个符合要求的正则表达式:
```
^(?=.{12,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+~`\-={}[\]:;"'<>,.?/]).*$
```
该正则表达式的含义如下:
- `^` 表示匹配字符串的开头
- `(?=.{12,})` 表示后面的字符串长度必须大于等于12个字符
- `(?=.*\d)` 表示后面的字符串必须包含数字
- `(?=.*[a-z])` 表示后面的字符串必须包含小写字母
- `(?=.*[A-Z])` 表示后面的字符串必须包含大写字母
- `(?=.*[!@#$%^&*()_+~`\-={}[\]:;"'<>,.?/])` 表示后面的字符串必须包含特殊符号
- `.*` 表示匹配任意字符任意次数,这里是为了满足以上条件
- `$` 表示匹配字符串的结尾
此外,为了避免口令与账号相关,可以在正则表达式中加入以下条件:
- 账号的完整字符串不得出现在口令中:`(?!\S*(?:用户名)\S*)`,其中“用户名”应该替换为实际的账号字符串
- 口令不得包含大小写变位或形似变换的字符串:可以通过编程的方式来实现
至于如何避免键盘排序密码,可以通过禁止使用连续的键位或常用的键位组合来实现。
相关问题
input标签使用正则表达式实现:包含大写小写字母和数字,长度是6位
可以使用HTML5中的pattern属性来实现这个正则表达式的限制。代码如下:
```html
<input type="text" pattern="^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6}$" required>
```
其中,pattern属性的值就是用来限制输入格式的正则表达式。该正则表达式的含义是:
- `^`:表示匹配字符串的开头。
- `(?=.*\d)`:表示字符串中必须包含数字。
- `(?=.*[a-z])`:表示字符串中必须包含小写字母。
- `(?=.*[A-Z])`:表示字符串中必须包含大写字母。
- `.{6}`:表示字符串的长度必须为6。
- `$`:表示匹配字符串的结尾。
因此,这个正则表达式的含义是:字符串必须包含大写字母、小写字母和数字,且长度必须为6。
生成密码校验正则表达式,规则为:口令应至少为8位,且为数字、大小写字母和特殊符号中至少3类的组合
以下是生成密码校验正则表达式的代码:
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).{8,}$
这个正则表达式要求密码至少为8位,且必须包含数字、小写字母、大写字母和特殊符号中的至少3种。
阅读全文