正则大小写字母+数字+特殊字符 用户密码中不要出现与用户名或者系统名相关的字符
时间: 2024-09-20 17:12:15 浏览: 34
为了创建一个用户密码规则,该规则允许正则表达式匹配包含大小写字母、数字以及特定特殊字符的组合,同时避免包含与用户名或系统名称相关的字符,你可以使用这样的正则模式:
```regex
^(?!.*\b(\w+)\b)[A-9!@#$%^&*(),.?":{}|<>]{8,}(?<![\.\W]\1)$
```
这个正则表达式的解释:
1. `^` 表示字符串开始。
2. `(?!.*\b(\w+)\b)` 使用否定前瞻断言,防止密码包含用户名或系统名的一部分。`\b` 是单词边界,`\w+` 匹配一个或多个字母、数字或下划线,如果找到这部分,整个表达式失败,不会继续检查后面的条件。
3. `[A-Za-z0-9!@#$%^&*(),.?":{}|<>]` 定义了允许的字符集,包括大写和小写字母、数字以及一些常用特殊字符。
4. `{8,}` 确保密码长度至少为8位。
5. `(?<![\.\W]\1)` 又是一个负向预查断言,防止刚刚匹配过的用户名部分出现在密码中。`\1` 指代前面捕获的单词,`[\.\W]` 匹配非单词字符和点,表示除了点之外的任何分隔符。
6. `$` 表示字符串结束。
相关问题
js大小写字母+数字+特殊字符正则
可以使用以下正则表达式来匹配大小写字母、数字和特殊字符:
```
/^[a-zA-Z0-9!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]+$/
```
这个正则表达式表示:
- `^` 表示字符串的开头
- `[a-zA-Z0-9!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]+` 表示大小写字母、数字和特殊字符的集合,`+` 表示可以出现一次或多次
- `$` 表示字符串的结尾
如果你需要限制字符串的长度,可以在`+`后面加上限制长度的量词,比如`{8,16}`表示长度在8到16之间。完整的正则表达式如下:
```
/^[a-zA-Z0-9!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]{8,16}$/
```
js大小写字母+数字+特殊字符(非强制)正则
以下是匹配包含大小写字母、数字和特殊字符(非强制)的正则表达式:
```javascript
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d!@#$%^&*()_+=[\]{}|\\;:'",.<>/?]{8,}$/
```
解释一下:
- `^`: 匹配字符串的开始位置。
- `(?=.*[a-z])`: 匹配至少一个小写字母。
- `(?=.*[A-Z])`: 匹配至少一个大写字母。
- `(?=.*\d)`: 匹配至少一个数字。
- `[a-zA-Z\d!@#$%^&*()_+=[\]{}|\\;:'",.<>/?]{8,}`: 匹配大小写字母、数字和特殊字符(非强制)中的至少8个字符。
- `$`: 匹配字符串的结束位置。
这个正则表达式会匹配包含大小写字母、数字和特殊字符(非强制)的字符串,其中字母和数字至少要各有一个,长度至少为8个字符。
阅读全文